前言

对于 MySQL 的 10038 错误,我是从一开始的懵逼到之后越来越熟悉,恰如一句老话 “久病成良医”。经常会遇到这个错误,一开始没有任何解决方案,只能百度。后来慢慢地掌握了解决的技巧。

解决方案

1. 绑定地址错误

netstat -anp | grep 3306
0.0.0.0 表示监听本地所有ip地址,其他电脑是可以访问的,并且修改ip不受影响。 127.0.0.1 表示只监听本机回环地址,只能本机访问。 x.x.x.x具体 ip地址,是只监听这个ip。修改ip后程序就不能监听了。需要手动修改软件监听地址才可以用)

这里3306 端口写的是ip地址:127.0.0.1 ,故只有本机能够访问*;将其修改成0.0.0.0即可

解决办法:
命令
find / -name my.cnf
pathlist
vi path:
修改:bind-address = 127.0.0.1->bind-address = 0.0.0.0

2. 权限不够,查看用户权限(连接的用户名此处为root),然后修改权限,重启服务,再次连接:

show grant for someuser@'%'
   GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY PASSWORD 'SSS' WHITH OPTION

3. 服务商安全组未开通3306端口

如腾讯云,默认开通的端口中中不包括MySQL的3306端口
修改安全组中实例应用的安全规则,添加TCP:3306。

  • 注意
    修改安全组规则后,要在服务商后台重新启动服务器(相当于重新插拔服务器电源),之后才会生效。