在 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:
|
1 2 3 4 5 6 |
# 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 |
上面的设定, 给 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
$ sudo firewall-cmd –reload
设定了 MySQL 权限及防火墙后, 应该可以从远端接接到 MySQL.