全部产品
存储与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 的手册

 

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

 

本文导读目录