开发者社区> 问答> 正文

云服务器 ECS Linux MySQL 无法远程连接问题有哪些常见错误及解决办法


在使用自建 MySQL 数据库的时候,偶尔会遇到无法连接 MySQL 服务器的情况,以下列举一些常见问题及解决办法:




账号没有授权导致无法连接 MySQL,报错:'xxxx' is not allowed to connect to this MySQL Server



问题现象


服务器上部署 MySQL  在本地直接连接服务器是没有问题的,远程连接 MySQL 会显示错误 。
报错:EHost 'XX.XX.XX.XX' is not allowed to connect to this MySQL serverConnection closed by foreign host.


解决方案


查看 MySQL  监听的地址就是 0.0.0.0 。这种情况请先检查两个地方
1、服务器是否开启了防火墙,请先关闭防火墙测试
2、MySQL 是否没有打开远程登录
打开远程登陆有两种方法。
(1 )该表:在本机登入 MySQL 后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从 ”localhost” 改为 '%'。
(2 )授权法:为 MySQL 创建一个 远程连接的用户
一般这样配置就没有问题了。


端口监听不对导致无法连接 MySQL


MySQL 监听在 127.0.0.1 上导致外部无法连接,如下图:

修改 MySQL 配置文件里面的 bind-address,如下图重启即可。


MySQL 连接报错:Lost connection to MySQL server at 'reading initial communication packet'



问题现象


MySQL 远程连接报错:Lost connection to MySQL server at 'reading initial communication packet'

解决方案


1、检查是否有防火墙限制2、检查 MySQL 是否有访问权限 use mysql;Grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;flush privileges;  
3、检查 my.ini 文件里是否设置了 bind-address 参数,如果有将该条注释掉即可。
4、在 my.ini 中添加 skip-name-resolve vi /etc/my.cnf[mysqld]skip-name-resolve  #增加这个
5、修改 hosts.allow vi /etc/hosts.allowmysqld-max : ALL :ALLOW   #增加这个


版本问题导致无法连接 MySQL,报错:Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)



问题现象


ECS Linux 主机本机 MySQL 客户端版本为 5.6,连接低版本的 MySQL 客户端
报错ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refu sed (client option 'secure_auth' enabled)

问题原因


由于服务器端的密码管理协议陈旧,使用的是旧有的用户密码格式存储;但是客户端升级之后采用了新的密码格式 。mysql5.6版本遇到这种不一致的情况就会拒绝连接 。

解决方案


连接时增加 --secure-auth 参数,连接命令如下: mysql -h host -u username --secure-auth -p
详细的表述可以参考 MySQL 的手册

如果问题还未能解决,您可以到阿里云社区进行 免费咨询,或联系云市场商家 寻求帮助

展开
收起
boxti 2017-10-23 10:15:19 3833 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载