在 MySQL 建立用戶後, 如果在從遠端連接到 MySQL Server, 可能會出現以下錯誤 (‘xxx.xxx.xxx.xxx’ 是客戶端電腦的 IP):
ERROR 1130 (HY000): Host ‘xxx.xxx.xxx.xxx’ is not allowed to connect to this MySQL server
這個情況如果在本機可以連接, 只有遠端不能連接, 原因是 MySQL 預設不允許從遠端連接。
要解決這個問題, 只要修改設定 MySQL 帳號的權限即可, 在 MySQL Server 的主機上用 root 登入 MySQL, 或者用 root 登入 phpmyadmin:
# mysql -u root -p
Enter password:
mysql> GRANT ALL ON *.* to root@'xxx.xxx.xxx.xxx' IDENTIFIED BY 'new-password';
mysql> FLUSH PRIVILEGES;
mysql> quit
1
2
3
4
5
6
# mysql -u root -p
Enterpassword:
mysql>GRANTALLON *.*toroot@'xxx.xxx.xxx.xxx'IDENTIFIEDBY'new-password';
mysql>FLUSHPRIVILEGES;
mysql>quit
上面的設定, 給 root 帳號在 IP ‘xxx.xxx.xxx.xxx’ 連接, 如果想改為任何 IP 都可以連接, 可以改成 “root@’%'” 即可
另外如果防火牆沒有允許 MySQL 對外開放, 需要設定防火牆開啟 MySQL 埠號, 而 MySQL 預設埠號是 3306, 以下是 RHEL 及 CentOS 7 的做法:
$ sudo firewall-cmd –zone=public –add-port=3306/tcp –permanent
$ sudo firewall-cmd –reload
設定了 MySQL 權限及防火牆後, 應該可以從遠端接接到 MySQL.
你可能感興趣的內容: