开发者社区> 问答> 正文

无法远程连接Linux实例中自建MySQL服务器怎么处理?

无法远程连接Linux实例中自建MySQL服务器怎么处理?

展开
收起
小天使爱美 2020-03-26 00:13:35 990 0
1 条回答
写回答
取消 提交回答
  • 概述 在Linux系统的ECS实例上自建MySQL服务器,可能会出现无法远程连接异常情况,本文主要介绍该情况下的常见错误及解决办法。

    详细信息 阿里云提醒您:

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

    未授权导致无法连接MySQL服务 监听地址错误导致无法连接MySQL服务 连接时报“Lost connection to MySQL server at 'reading initial communication packet' ”错误 版本问题导致无法连接MySQL服务

    未授权导致无法连接MySQL服务 问题现象 在ECS实例内部连接MySQL服务正常,远程连接则会出现如下错误 。

    EHost 'XX.XX.XX.XX' is not allowed to connect to this MySQL serverConnection closed by foreign host. 系统显示类似如下。

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

    监听地址错误导致无法连接MySQL服务 问题现象 MySQL服务对127.0.0.1地址进行监听,导致外部无法远程连接。

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

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

    问题现象 远程连接MySQL服务时,报如下错误。

    Lost connection to MySQL server at 'reading initial communication packet'

    解决方案 检查是否开启防火墙,限制了连接请求。 检查MySQL数据库是否有访问权限。可通过如下命令进行添加。 use mysql; Grant all privileges on . to 'root'@'%' identified by '[$Password]' with grant option; flush privileges; 注:[$Password]为密码。 检查my.ini配置文件是否设置了bind-address参数,将该条注释掉。 在my.ini配置文件添加skip-name-resolve参数。 修改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]为数据库用户名。

    2020-03-26 00:28:50
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载