關於在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基本是端口與授權問題。