Úvod
Není neobvyklé hostovat databáze a webové servery na stejném místním počítači. Mnoho organizací však nyní přechází na distribuovanější prostředí.
Samostatný databázový server může zlepšit zabezpečení, výkon hardwaru a umožní vám rychle škálovat prostředky. V takových případech použití je prioritou naučit se efektivně spravovat vzdálené zdroje.
Tento kurz ukazuje, jak povolit vzdálená připojení k databázi MySQL.
Předpoklady
- Přístup k oknu terminálu/příkazovému řádku
- Vzdálený server MySQL
- Sudo nebo root oprávnění na místních a vzdálených počítačích
Vzdálené připojení k serveru MySQL
Povolení připojení ke vzdálenému serveru MySQL se nastavuje ve 3 krocích:
- Upravit konfigurační soubor MySQL
- Nakonfigurujte bránu firewall
- Připojte se ke vzdálenému serveru MySQL
Krok 1:Upravte konfigurační soubor MySQL
1.1 Přístup k souboru mysqld.cnf
Pomocí preferovaného textového editoru otevřete soubor mysqld.cnf soubor. Tento příklad používá textový editor nano v Ubuntu 18.04. Chcete-li získat přístup ke konfiguračnímu souboru serveru MySQL, zadejte do rozhraní příkazového řádku následující příkaz:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Umístění souboru se může lišit v závislosti na distribuci a používané verzi. Pokud konfigurační soubor MySQL není jeho výchozí umístění, zkuste použít Linux find
příkaz k jeho detekci.
1.2 Změna Bind-Address IP
Nyní máte přístup ke konfiguračnímu souboru serveru MySQL. Přejděte dolů na bind-address řádek a změňte IP adresu. Aktuální výchozí IP adresa je nastavena na 127.0.0.1. Tato IP omezuje připojení MySQL k místnímu počítači.
Nová IP by měla odpovídat adrese počítače, který potřebuje vzdálený přístup k serveru MySQL. Pokud například navážete MySQL na 0.0.0.0, pak se k němu může připojit jakýkoli počítač, který dosáhne serveru MySQL.
Jakmile provedete potřebné změny, uložte a ukončete konfigurační soubor.
1.3 Restartujte službu MySQL
Aplikujte změny provedené v konfiguračním souboru MySQL restartováním služby MySQL:
sudo systemctl restart mysql
Dále je třeba upravit vaše aktuální nastavení brány firewall, aby umožňoval provoz na výchozí port MySQL.
Krok 2:Nastavte bránu firewall tak, aby umožňovala vzdálené připojení MySQL
Při úpravách konfiguračního souboru jste si pravděpodobně všimli, že výchozí port MySQL je 3306 .
Pokud jste již nakonfigurovali bránu firewall na serveru MySQL, musíte otevřít provoz pro tento konkrétní port. Postupujte podle pokynů níže, které odpovídají používané službě brány firewall.
Možnost 1:UFW (Uncomplicated Firewall)
UFW je výchozí nástroj brány firewall v Ubuntu. V okně terminálu zadejte následující příkaz pro povolení provozu a shodu IP a portu:
sudo ufw allow from remote_ip_address to any port 3306
Systém potvrdí, že pravidla byla úspěšně aktualizována.
Možnost 2:FirewallD
Nástroj pro správu firewallu v CentOS používá zóny diktovat, jaký provoz má být povolen.
Vytvořte novou zónu pro nastavení pravidel pro provoz serveru MySQL. Název zóny v našem příkladu je mysqlrule a použili jsme IP adresu z našeho předchozího příkladu 133.155.44.103 :
sudo firewall-cmd --new-zone=mysqlrule --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlrule --add-source=133.155.44.103
sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp
sudo firewall-cmd --reload
Úspěšně jste otevřeli port 3306 na vašem firewallu.
Možnost 3:Otevřete port 3306 pomocí iptables
iptables Tento nástroj je standardně dostupný na většině distribucí Linuxu. Zadejte následující příkaz pro otevření portu MySQL 3306 pro neomezený provoz:
sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT
Chcete-li omezit přístup na konkrétní IP adresu, použijte místo toho následující příkaz:
sudo iptables -A INPUT -p tcp -s 133.155.44.103 --dport 3306 -j ACCEPT
Tento příkaz uděluje přístup k 133.155.44.103. Budete ji muset nahradit IP pro vaše vzdálené připojení.
Je nutné uložit změny provedené v pravidlech iptables. V distribuci založené na Ubuntu zadejte následující příkazy:
sudo netfilter-persistent save
sudo netfilter-persistent reload
Zadejte následující příkaz pro uložení nových pravidel iptables v CentOS:
service iptables save
Krok 3:Připojte se ke vzdálenému serveru MySQL
Váš vzdálený server je nyní připraven přijímat připojení. K navázání spojení se vzdáleným serverem MySQL použijte následující příkaz:
mysql -u username -h mysql_server_ip -p
-u username
v příkazu představuje vaše uživatelské jméno MySQL. -h mysql_server_ip
je IP nebo název hostitele vašeho serveru MySQL. -p
volba vás vyzve k zadání hesla pro uživatelské jméno MySQL.
Měli byste vidět výstup podobný tomu níže:
Connection to mysql_server_ip 3306 port [tcp/mysql] succeeded!
Jak udělit vzdálený přístup k nové databázi MySQL?
Pokud ještě nemáte žádné databáze, můžete snadno vytvořit databázi zadáním následujícího příkazu do prostředí MySQL:
CREATE DATABASE ‘yourDB’;
Chcete-li udělit vzdálenému uživateli přístup ke konkrétní databázi:
GRANT ALL PRIVILEGES ON yourDB.* TO [email protected]’133.155.44.103’ IDENTIFIED BY ‘password1’;
Název databáze, uživatelské jméno, vzdálená IP a heslo musí odpovídat informacím, které chcete použít pro vzdálené připojení.
Jak udělit vzdálený přístup ke stávající databázi MySQL
Udělení vzdáleného přístupu uživateli k existující databázi vyžaduje sadu dvou příkazů:
update db set Host=’133.155.44.103' where Db='yourDB';
update user set Host=’133.155.44.103' where user='user1';
Uživatel1 má nyní přístup k vaší databázi ze vzdáleného umístění identifikovaného pomocí IP 133.155.44.103 .