全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
云服务器 ECS

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

更新时间:2017-06-07 13:26:11

在使用自建 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.

1.jpg

解决方案

查看 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.allow
mysqld-max : ALL :ALLOW   #增加这个

 

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

问题现象

ECS Linux 主机本机 MySQL 客户端版本为 5.6,连接低版本的 MySQL 客户端

报错ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)

问题原因

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

解决方案

连接时增加 --secure-auth 参数,连接命令如下:

mysql -h host -u username --secure-auth -p

详细的表述可以参考 MySQL 的手册

 

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

 

本文导读目录