GNU/Linux >> Znalost Linux >  >> Linux

Jak povolit vzdálený přístup k databázovému serveru MySQL

Softwarový ekosystém není v pojetí distribuovaných systémů nový. K interakci s vaším vzdáleně hostovaným softwarem nemusíte být fyzicky přítomni.

Proto vaše MySQL nemusí sídlit na místním počítači, abyste mohli plně využívat jeho funkční vlastnosti. Nyní můžete mít MySQL spuštěný na vzdáleném dedikovaném serveru a stále máte zaručeno stejné zabezpečení databáze a výkon jako v případě MySQL spuštěného na místním/desktopovém počítači.

Tento článek nás provede nastavením a povolením vzdáleného přístupu k MySQL server v Linuxu. Na vzdáleném serveru/stroji hostujícím vaše MySQL databázového softwaru, musíme pro něj provést několik konfiguračních kroků, abychom umožnili přístup ověřeným vzdáleným uživatelům.

Vytvořit nového uživatele MySQL

Je vhodné pracovat se vzdáleným uživatelem, který není ani root MySQL uživatel ani není vázán na vzdálený server hostující MySQL databázový software.

Získejte přístup ke vzdálenému MySQL server a databáze přes SSH .

$ ssh [email protected]
$ mysql -u root -p

Pro vytvoření nového uživatele MySQL se budeme držet syntaxe příkazu:

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';

Jak jste si všimli, používáme označení 'uživatelské jméno'@'%' a nikoli ‘uživatelské jméno’@’localhost’ protože chceme, aby tento uživatel byl dostatečně dynamický pro přístup k MySQL serveru z jakéhokoli jiného hostitelského počítače s jinou IP adresou.

mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password1122';

Udělme tomuto uživateli některá databázová oprávnění. Tento uživatel může mít například stejná databázová oprávnění jako uživatel root, pouze pokud je tento uživatel vázán na hostitelský počítač.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

[ Také by se vám mohlo líbit:Jak vytvořit nového uživatele MySQL pomocí phpMyAdmin ]

Povolte vzdálený přístup k MySQL

Nyní, když máme vytvořeného vzdáleného uživatele, je čas provést některé další změny konfigurace. Ve výchozím nastavení je adresa vazby MySQL 127.0.0.1 což znamená, že s databází MySQL mohou pracovat pouze uživatelé localhost.

Chcete-li svému databázovému serveru poskytnout přístup k IP adresám jiných uživatelů, přejděte a otevřete soubor konfiguračního souboru MySQL.

 
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
OR
$ sudo vi /etc/my.cnf

Chcete-li povolit vzdálený přístup k vašemu databázovému serveru MySQL, použijte pole bind-address a mysqlx-bind-address nutno okomentovat. Tyto změny konfigurace zabrání tomu, aby server hostující databázový software MySQL spoléhal pouze na připojení localhost (127.0.0.1). Poté k němu bude mít přístup jakákoli IP adresa.

Uložte a zavřete soubor.

Restartujte svůj server MySQL a poté zjistěte IP adresu serveru MySQL.

$ sudo systemctl restart mysql
$ ifconfig

Pokus o vzdálený přístup k databázi MySQL

Pro přímé připojení k MySQL databázový server vzdáleně, dodržujte následující syntaxi MySQL:

$ mysql -u username -h mysql_server_ip_adress -p

V našem případě bude příkaz vypadat následovně:

$ mysql -u remote_user -h 192.168.50.130 -p

Pokud narazíte na výše uvedenou chybu, jak je znázorněno na snímku obrazovky, budete muset nakonfigurovat svého uživatele MySQL tak, aby používal nativní heslo. Přihlaste se zpět k serveru MySQL přes SSH a implementujte příkaz:

mysql> ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password1122'; 
mysql> exit;

Poté ukončete prostředí databáze MySQL a restartujte démona MySQL.

$ sudo systemctl restart mysql

Znovu se pokuste o vzdálený přístup k vašemu serveru MySQL.

$ mysql -u remote_user -h 192.168.50.130 -p

A stejně tak můžete přímo a vzdáleně získat přístup k databázovému serveru MySQL ze vzdáleného klientského počítače nakonfigurovaného na IP adresu dle vašeho výběru.

Povolte vzdálený přístup k MySQL ve firewallu

Pokud máte na vzdáleném serveru povolenou bránu firewall, možná budete muset udělit přístup k výchozímu portu MySQL 3306 a udělte přístup k remote_ip_address jak je uvedeno.

UFW Firewall

$ 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

To je vše! V tomto článku jste se naučili užitečné informace o běžných myšlenkách vzdáleného přístupu k MySQL v Linuxu.


Linux
  1. Jak nainstalovat databázový server MySQL 8 na CentOS 8

  2. Jak povolit nebo zakázat vzdálené přihlášení ke konkrétním uživatelským účtům na serveru Linux

  3. Jak povolit vzdálené připojení k databázovému serveru MySQL

  1. Jak povolit vzdálená připojení k MySQL

  2. Jak nainstalovat databázový server MySQL na CentOS

  3. Jak nakonfigurovat databázi MySQL Slave

  1. Jak resetovat heslo kořenového uživatele MySQL v Linuxu

  2. Jak povolit vzdálená připojení k MySQL

  3. Jak přiřadit uživatele k databázi MySQL v cPanel