快捷搜索:  汽车  科技

navicat与mysql连接需要联网(Navicat连接MySQL数据库报10038错误的解决方法)

navicat与mysql连接需要联网(Navicat连接MySQL数据库报10038错误的解决方法)

Navicat连接mysql数据库报10038错误的解决方法(对多个可疑点一步步排错法)

导读: Navicat连接MySQL数据库出现10038错误的各种解决方法(亲试检查用户、防火墙端口及配置文件等) ,虽然同样的10038错误,但是原因不一,总结如下:1、查看数据库用户host列是localhost还是%,必须改为%。

连接MySQL数据库出现10038错误的各种解决方法(亲试检查用户、防火墙端口及配置文件等) 以前我的几个网站放在dreamhost的时候,我总是喜欢用Navicat连接MySQL数据库,这样可以不用命令行,直接在图像界面里修改操作数据库,非常方便,堪称MySQL图形化管理工具中的神器。最近刚弄了个阿里云的ecs服务器,配置好后,赶紧打开Navicat,输入IP地址,用户名和密码,测试连接,10038错误,显示2003 can't connect to MySQL server on 'localhost'(10038).:

navicat与mysql连接需要联网(Navicat连接MySQL数据库报10038错误的解决方法)(1)

这个错误比较熟悉了,在用dreamhost的时候,只要修改一下允许root用户远程登录就可以。在咱们的ECS服务器里可以用命令。我的环境是linux,centos 7,PHP5.6,Apache2.4,mysql5.7,Navicat 绿色版下载的版本是Navicat for Mysql 11.00。

1、看MySQL的用户是不是限制了远程登录,也就是看host是localhost还是%。

登录mysql数据库,查看用户情况:

查看mysql用户的命令:mysql> SELECT User Host FROM mysql.user;

navicat与mysql连接需要联网(Navicat连接MySQL数据库报10038错误的解决方法)(2)

果然,显示的root为localhost本地登录,修改命令如下:

mysql> grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;

Query OK 0 rows affected 1 warning (0.01 sec)

mysql> flush privileges;

Query OK 0 rows affected (0.00 sec)

之后再次使用select查看用户:

navicat与mysql连接需要联网(Navicat连接MySQL数据库报10038错误的解决方法)(3)

root用可以远程登录mysql了

看到红色方框里多出的这一行了吧,用户root已经成功设置为可以远程登录mysql数据库啦。

重启MySQL,

#service mysqld restart;

再去Navicat窗口测试连接!

发现还是不行啊!

2、查看3306端口是否打开

那再看看是不是防火墙3306端口没有打开?端口查看命令:

[root@anyunwei.com~]# netstat -talnp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1683/httpd

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1088/sshd

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1683/httpd

tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 1093/php-fpm: maste

tcp 0 0 57.43.220.134:54794 116.15.69.53:80 ESTABLISHED 1270/AliYunDun

tcp 0 68 57.43.220.134:22 201.219.61.16:50227 ESTABLISHED 14404/sshd: root@pt

tcp6 0 0 :::3306 :::* LISTEN 1269/mysqld

看到如上黄色部分显示,知道3306端口已经是打开的,没有问题。

至此,我的Navicat连接数据库报错10038的问题解决。

期间查询了网上不少文章,虽然同样的错误,但是原因不一,总结如下:

1、查看数据库用户host列是localhost还是%,必须改为%;

2、把/etc/my.cnf中的 bind-address = 127.0.0.1前加一个#注释掉,如果你的my.cnf里没有这个bind-address也是正常的,就不用理他了;

3、如果开了防火墙,注意看3306端口是不是打开了,提醒,在centos 7中,默认用的是firewall,不是iptable了;

4、如果是ecs主机,看看你的这个实例的安全规则是不是设置正确。
转自中国存储网,原文链接:https://www.chinastor.com/yw/04293QK2018.html

猜您喜欢: