Linux - jak povolit vzdálený přístup k databázi MySQL
Dobrý den,
potřebuji se připojovat k databázi mysql (mariadb), která mi běží na malém raspberry pi, také vzdáleně. Nyní tam mám chybu:
mrux@ogga ~ $mysql -u root -p -h 192.168.24.250
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.24.250' (111 "Connection refused")
Firewall dle všeho na raspbianu není a port 3306 naslouchá, ale vypadá to, že jen lokálně
mrux@ogga ~ $netstat -tulpn | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1572/mysqld
ODPOVĚĎ
Dobrý den, zkuste zkontrolovat toto nastavení u MySQL serveru pro vzdálený přístup:vim /etc/my.cnf
a dopsat IP adresu serveru:bind-address=192.168.24.250
Restart MySQL službysystemctl restart mysql
Povolit port 3306 ve firewalldfirewall-cmd --zone=public --permanent --add-port=3306/tcp
firewall-cmd --reload
Nastavit oprávnění v MySQL pro přístup ze zdrojové IP 8.8.8.8:mysql -u root -p mysql
mysql> update db set Host='8.8.8.8 where Db='databaze';
mysql> update user set Host='8.8.8.8' where user='user';
Update
Zde je ještě návod, jak povolit přístup k mariadb serveru na linux ubuntu i mimo localhost:
sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp
sudo firewall-cmd --reload
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
...
bind-address = 0.0.0.0
...
sudo systemctl restart mariadb
Pak je případně ještě třeba upravit práva pro přístup k db i pro daného mysql uživatele.