尽管授予了远程权限,但对 MySQL 服务器的远程访问尝试失败并出现访问被拒绝错误给用户。
要在 MySQL 5.6 及更低版本中接受远程连接,请确保 /etc/mysql/my.cnf 中取消注释以下行:
#Replace xxx with your IP Address bind-address = xxx.xxx.xxx.xxx
或者,使用 bind-address = 0.0.0.0 允许任何IP连接。
对于 MySQL 5.7 及以上版本,修改绑定地址在 /etc/mysql/mysql.conf.d/mysqld.cnf 中。
重新启动 MySQL 并使用 lsof -i -P | 验证更新后的绑定地址正则表达式:3306。它应该返回您服务器的 IP 地址。
在本地主机和 % 中创建具有适当权限的远程用户:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
授予必要的权限:
GRANT ALL ON *.* TO 'myuser'@'localhost'; GRANT ALL ON *.* TO 'myuser'@'%';
最后,刷新权限和exit:
FLUSH PRIVILEGES; EXIT;
如果不成功,请检查其他错误消息或检查 my.cnf 配置。如果 lsof 不可用,请考虑安装 lsof 进行故障排除。
如果 my.cnf 中的绑定地址更改无法解决问题,请尝试在 /etc/mysql/ 中修改它mariadb.conf.d/50-server.cnf,最初声明的地方。
以上是为什么无法在 Ubuntu 上远程访问 MySQL 服务器,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!