当用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,使其生效即可。