解决阿里云云服务器上安装mysql远程无法连接问题

在Linux系统的ECS实例上自建MySQL服务器,可能会出现无法远程连接异常情况,本文主要介绍该情况下的常见错误及解决办法。

详细信息

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

以下列举一些常见问题及解决办法。

目录

阿里服务器防火墙配置导致无法连接MySQL服务器

未授权导致无法连接MySQL服务

监听地址错误导致无法连接MySQL服务

连接时报“Lost connection to MySQL server at 'reading initial communication packet' ”错误

版本问题导致无法连接MySQL服务


 

阿里服务器防火墙配置导致无法连接MySQL服务器

 

防火墙墙规则中添加MySQL规则。

 

未授权导致无法连接MySQL服务

问题现象

在ECS实例内部连接MySQL服务正常,远程连接则会出现如下错误 。

EHost 'XX.XX.XX.XX' is not allowed to connect to this MySQL serverConnection closed by foreign host.

系统显示类似如下。

 

解决方案

  1. 确认MySQL服务监听的是0.0.0.0地址。
  2. 检查实例是否开启防火墙,建议先关闭防火墙进行测试。
  3. 确认MySQL服务是否开启远程登录,可通过如下方法开启。
    • 登录数据库,选择mysql数据库。将user表中的host项,从localhost改为'%'
    • 登录数据库,创建一个远程连接的用户。

 

监听地址错误导致无法连接MySQL服务

问题现象

MySQL服务对127.0.0.1地址进行监听,导致外部无法远程连接。

362cc57a-662e-486b-8c16-6f2b2a32dc0e.pnguploading.4e448015.gif正在上传…重新上传取消362cc57a-662e-486b-8c16-6f2b2a32dc0e.pnguploading.4e448015.gif正在上传…重新上传取消

 

解决方案

在MySQL服务配置文件中,注释掉bind-address参数,然后重启即可。

TB1UB9qKFXXXXXVapXXXXXXXXXX.png#alt=&height=338&width=995uploading.4e448015.gif正在上传…重新上传取消

 

连接时报“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 '[$Password]' with grant option;
    flush privileges;
    注:[$Password]为密码。
  3. 检查my.ini配置文件是否设置了bind-address参数,将该条注释掉。
  4. 在my.ini配置文件添加skip-name-resolve参数。
  5. 修改hosts.allow配置文件,增加如下配置。
    mysqld-max : ALL :ALLOW

 

版本问题导致无法连接MySQL服务

问题现象

自建的MySQL服务器版本为5.6,远程连接时提示如下错误。

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

 

问题原因

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

 

解决方案

连接时添加--secure-auth参数,连接命令如下所示。详细的表述可以参考 MySQL手册

mysql -h [$Host] -u [$Username] --secure-auth -p

注:[$Host]为ECS实例域名或IP,[$Username]为数据库用户名。

 

 

Guess you like

Origin blog.csdn.net/weixin_42324471/article/details/116329114