远程连接mysql,特别慢,有时连不上

远程MySQL连接慢及解决
本文探讨了远程连接MySQL服务器速度缓慢甚至无法连接的问题,分析了mysqld进行反向域名解析失败的原因,并提供了三种解决方案:禁用DNS解析、修改hosts文件及调整mysqld配置。

远程连接mysql,特别慢,有时连不上

现象

  1. 从client连mysql服务器,连不上,连接超时
  2. 从服务器上看mysql日志信息:
    [Warning] IP address ‘172.16.3.12’ could not be resolved: Temporary failure in name resolution
    其中的IP是客户端IP

参考

[1] https://serverfault.com/questions/341290/mysql-warning-ip-address-could-not-be-resolved
[2] https://blog.youkuaiyun.com/yabingshi_tech/article/details/51956554

原因

mysqld对IP进行反向域名解析,不能解析导致的错误

三种解决方法

  1. 把DNS去掉:注释掉/etc/resolv.conf的内容. 没有设置DNS服务器,mysqld就不去远程做DNS解析了

方法1的局限:需要DNS解析的其他应用没法工作了

  1. 把client的ip和主机名写在mysql服务器的/etc/hosts文件里,mysqld可以很快解析到主机名。
    如:
    172.16.3.12 xxx.com

方法2的局限:不适于客户端多或IP经常变化时

  1. 通过mysqld的配置文件,禁止mysqd进行域名解析:
    下列内容写在 /etc/my.conf.d/server.cnf 中 (CentOS)
[mysqld]
skip-host-cache
skip-name-resolve

方法3的局限:不能在mysql授权时中指定主机名了,只能指定IP

### 解决 MySQL 远程连接失败的方法 #### 修改 MySQL 配置文件 对于 MySQL 默认只允许本地主机访问的情况,在配置文件 `my.cnf` 或者 `/etc/mysql/mysql.conf.d/mysqld.cnf` 文件中存在绑定地址设置 bind-address = 127.0.0.1,这使得 MySQL 只监听来自 localhost 的请求。为了使 MySQL 能够接受远程连接,可以尝试注释掉该行或将 IP 地址更改为服务器的实际公网IP或0.0.0.0表示接受任何来源的连接[^3]。 ```bash # 注释此行以允许外部连接 # bind-address = 127.0.0.1 ``` #### 开放防火墙端口 如果目标机器位于云环境中(如阿里云),还需要确认安全组规则已开放必要的 MySQL 端口号,默认情况下为3306。可以通过控制台界面添加入站规则来允许特定源IP地址范围内的流量到达指定端口[^4]。 #### 用户权限管理 当遇到类似于 "ERROR 1130 (HY000): Host 'xxx' is not allowed to connect..." 错误提示时,意味着当前用户缺乏足够的权限来进行远程访问。此时应该登录到具有管理员权限的账户下执行如下命令授予新用户的相应权限: ```sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` 上述 SQL 语句中的 `%` 表示匹配任意客户端主机名;也可以替换为具体的 IP 地址或者域名以便更加精确地控制哪些设备能够建立连接[^1]。 #### 关闭名称解析功能 有时由于 DNS 查找过程缓或者其他网络因素的影响可能会导致连接超时等问题发生。可以在 mysqld 部分追加参数 `skip-name-resolve` 来禁用基于主机名的身份验证机制从而加快响应速度并减少潜在错误的发生几率[^2]。 ```ini [mysqld] skip-name-resolve ``` 完成以上更改之后记得保存修改过的配置文档并且重启 MySQL 服务让改动生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值