当用navicat远程连接数据库出现10038错误的时候(can't connect to mysql server on 'localhost' (10038)),首查看数据库端口3306是否开通:
一:查看数据库端口3306是否开通
1:执行netstat -an|grep 3306:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
说明该端口只对本地127.0.0.1开放,不对外开放,为我们远程连接必须对外开放。
2:编辑/etc/mysql/my.cnf 文件
将bind-address = 127.0.0.1注释
3,保存重启数据库:/etc/init.d/mysql restart,出现以下情况就说明修改正确,对外开放。
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
4:问题还没有解决我们再看数据库是否对外开放,及是否开通远程连接:
二:开通远程连接服务:
1:mysql -uroot -proot,进入数据库命令行;
2:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;,设置远程连接
3:flush privileges,使其生效即可。