L'ecosistema software non è nuovo alla nozione di sistemi distribuiti. Non è necessario essere fisicamente presenti per interagire con il software ospitato in remoto.
Quindi il tuo MySQL non è necessario che risieda su una macchina locale per sfruttare appieno le sue caratteristiche funzionali. Ora puoi avere MySQL in esecuzione su un server dedicato remoto e continuare a garantire la stessa sicurezza e prestazioni del database come nel caso di un MySQL in esecuzione su una macchina locale/desktop.
Questa guida all'articolo ci guiderà attraverso la configurazione e l'abilitazione dell'accesso remoto a un MySQL server in Linux. Sul server/macchina remoto che ospita il tuo MySQL software di database, è necessario eseguire alcuni passaggi di configurazione per consentire l'accesso agli utenti remoti autenticati.
Crea un nuovo utente MySQL
È consigliabile lavorare con un utente remoto che non è né un MySQL root utente né legato al server remoto che ospita MySQL software di database.
Accedi al tuo MySQL remoto server e database tramite SSH .
$ ssh [email protected] $ mysql -u root -p

Per creare un nuovo utente MySQL, aderiremo alla sintassi del comando:
CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';
Come hai notato, stiamo usando la notazione 'nome utente'@'%' e non 'username'@'localhost' poiché vogliamo che questo utente sia sufficientemente dinamico per accedere a MySQL server da qualsiasi altra macchina host con un indirizzo IP diverso.
mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password1122';
Concediamo a questo utente alcuni privilegi di database. Ad esempio, questo utente può avere gli stessi privilegi del database dell'utente root solo se l'utente root è legato alla macchina host.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%'; mysql> FLUSH PRIVILEGES; mysql> exit;

[ Potrebbe piacerti anche:Come creare un nuovo utente MySQL tramite phpMyAdmin ]
Abilita accesso MySQL remoto
Ora che abbiamo creato l'utente remoto, è il momento di eseguire alcune modifiche alla configurazione aggiuntive. Per impostazione predefinita, l'indirizzo di collegamento MySQL è 127.0.0.1 il che implica che solo gli utenti di localhost possono interagire con il database MySQL.
Per dare accesso agli indirizzi IP di altri utenti al tuo server di database, naviga e apri il file file di configurazione MySQL.
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf OR $ sudo vi /etc/my.cnf
Per consentire l'accesso remoto al server del database MySQL, i campi bind-address e mysqlx-bind-address è necessario commentare. Queste modifiche alla configurazione impediranno al server che ospita il software del database MySQL di fare affidamento solo sulle connessioni localhost (127.0.0.1). Successivamente, qualsiasi indirizzo IP potrà accedervi.

Salva e chiudi il file.
Riavvia il tuo server MySQL e quindi identifica l'indirizzo IP del server MySQL.
$ sudo systemctl restart mysql $ ifconfig

Tentativo di accesso remoto al database MySQL
Per connettersi direttamente a MySQL server di database in remoto, attenersi alla seguente sintassi MySQL:
$ mysql -u username -h mysql_server_ip_adress -p
Nel nostro caso, il comando sarà simile al seguente:
$ mysql -u remote_user -h 192.168.50.130 -p

Se riscontri l'errore precedente come illustrato dall'acquisizione dello schermo, dovrai configurare il tuo utente MySQL per utilizzare una password nativa. Accedi nuovamente al tuo server MySQL tramite SSH e implementa il comando:
mysql> ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password1122'; mysql> exit;
Successivamente, esci dalla shell del database MySQL e riavvia il demone MySQL.
$ sudo systemctl restart mysql

Riprova l'accesso remoto al tuo server MySQL.
$ mysql -u remote_user -h 192.168.50.130 -p

E proprio così, puoi accedere direttamente e in remoto a un server di database MySQL da un computer client remoto configurato su un indirizzo IP a tua scelta.
Abilita accesso MySQL remoto nel firewall
Se hai un firewall abilitato sul tuo server remoto, potresti dover concedere l'accesso alla porta predefinita di MySQL 3306 e concedi l'accesso a remote_ip_address
come mostrato.
Firewall UFW
$ sudo ufw allow from remote_ip_address to any port 3306
FirewallD
$ sudo firewall-cmd --new-zone=mysqlrule --permanent $ sudo firewall-cmd --reload $ sudo firewall-cmd --permanent --zone=mysqlrule --add-source=remote_ip_address $ sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp $ sudo firewall-cmd --reload
Iptables
$ sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT $ sudo iptables -A INPUT -p tcp -s remote_ip_address --dport 3306 -j ACCEPT
È tutto! In questo articolo, hai appreso informazioni utili sulle idee comuni sull'accesso remoto a MySQL in Linux.