关于在windows下链接liunx系统下远程数据库报错2003--提示10038的解决方案如下:
在liunx系统中安装配置mysql数据库默认是没有对外开启3600端口,如果出现10038;
1,先尝试:netstat -an|grep 3306 来查看mysql默认的端口3306是否开启,允许哪个ip使用,如果你发现,前面有127.0.0.1,就说明,3306端口只能本机ip使用,
2,打开mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1注销?.
service iptables save
或者直接在命令行中开启3600端口如下所示:
2,重启端口
3,查看端口
4,查看当前运行状态:
以上是解决防火墙3600端口问题
如果开启了3600端口,还是出现此问题:就得修改数据库访问的权限问题,通过修改表,库授权访问,如下所示:
#mysql -u root -p //输入以下命令
#提示输入数据root登录密码:
进入mysql 输入以下命令
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘WITH GRANT OPTION; //任何远程主机都可以访问数据库
如果要限制只有某台机器可以访问,将其换成相应的IP即可,如:
GRANT ALL PRIVILEGES ON *.* TO root@"172.168.193.25" IDENTIFIED BY "root"; //其中的172.168.........则对应其ip
mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效
mysql> EXIT //退出
//或者通过修改表的形式;
mysql> use mysql;
mysql> grant all privileges on portal.* to root@zq27 identified by ‘root‘;
mysql> update user set host = ‘%‘ where user = ‘root‘;
mysql> select host, user from user;
mysql> flush privilege
总结:1.报错10038基本是端口与授权问题。
原文地址:https://www.cnblogs.com/ihxm/p/10614209.html