Chcete-li vystavit MySQL čemukoli jinému než localhost, budete muset mít následující řádek
Pro mysql verze 5.6 a nižší
bez komentáře v /etc/mysql/my.cnf
a přidělené IP adrese vašeho počítače, nikoli zpětné smyčce
Pro mysql verze 5.7 a vyšší
bez komentáře v /etc/mysql/mysql.conf.d/mysqld.cnf
a přidělené IP adrese vašeho počítače, nikoli zpětné smyčce
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Nebo přidejte bind-address = 0.0.0.0
pokud nechcete zadat IP
Poté zastavte a restartujte MySQL s novým záznamem my.cnf. Po spuštění přejděte do terminálu a zadejte následující příkaz.
lsof -i -P | grep :3306
To by se mělo vrátit asi takto s vaší skutečnou IP v xxx
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Pokud se výše uvedený příkaz vrátí správně, budete moci přijímat vzdálené uživatele. Aby se však vzdálený uživatel připojil se správnými oprávněními, musíte mít tohoto uživatele vytvořeného v localhost i '%' jako v.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
pak,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
a nakonec
FLUSH PRIVILEGES;
EXIT;
Pokud nemáte vytvořeného stejného uživatele jako výše, při místním přihlášení můžete zdědit základní oprávnění localhost a mít problémy s přístupem. Pokud chcete omezit přístup, který má můj uživatel, budete si muset přečíst syntaxi příkazu GRANT ZDE Pokud se přes to všechno dostanete a stále máte problémy, odešlete další chybový výstup a příslušné řádky my.cnf.
POZNÁMKA:Pokud se lsof nevrátí nebo není nalezen, můžete jej nainstalovat ZDE na základě vaší distribuce Linuxu. Nepotřebujete lsof, aby věci fungovaly, ale je to velmi užitečné, když věci nefungují podle očekávání.
AKTUALIZACE:Pokud i po přidání/změně bind-address
v my.cnf
nefungovalo, pak jej jděte a změňte na místě, kde bylo původně deklarováno:
/etc/mysql/mariadb.conf.d/50-server.cnf