遠程訪問mysql的錯誤解決方法
遠程訪問mysql經(jīng)常會出現(xiàn)下面的一些錯誤,我用自己經(jīng)過了一些小波折后找到了一些解決方法,不過我的mysql是轉(zhuǎn)載linux系統(tǒng)上的,不過windows平臺也是類似的原理。下面是學(xué)習(xí)啦小編跟大家分享的是遠程訪問mysql的錯誤解決方法,歡迎大家來閱讀學(xué)習(xí)。
遠程訪問mysql的錯誤解決方法
工具/原料
xshell
mysql
方法/步驟
如果出現(xiàn)下面這種情況,一般是防火墻屏蔽了mysql的3306端口,我們需要開啟3306端口
執(zhí)行下面的命令
[root@doctortang bin]# /sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
[root@doctortang bin]# /etc/rc.d/init.d/iptables save
[root@doctortang bin]# /etc/init.d/iptables restart
如果執(zhí)行查看防火墻狀態(tài)的命令:
[root@doctortang bin]# /etc/init.d/iptables status
會出現(xiàn)下面情況則說明開啟3306端口成功了(就是下面圖中的3306)
此時再訪問有可能會遇到下面這種圖的報錯,這是因為我們還沒給mysql設(shè)置一個可以讓我們從我們當(dāng)前ip遠程訪問的用戶及密碼(我自己的本地ip為192.168.1.140)
現(xiàn)在假設(shè)你想讓用戶名為root的用戶從ip為192.168.1.140的主機連接到mysql服務(wù)器,并使用123456作為密碼,可以執(zhí)行下面的命令(為了使修改立即生效,可多次執(zhí)行FLUSH PRIVILEGES命令,我這里執(zhí)行了兩次)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.140' IDENTIFIED BY
-> '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> FLUSH PRIVILEGES;
6此時再以用戶名root,密碼123456去訪問mysql就可以了
7這里說多兩種我試過的適合其他情況的設(shè)置,第一種就是如果想任何主機都能以用戶名為root,密碼為123456都能訪問mysql,可以執(zhí)行下面命令
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
8然后讓修改生效
mysql> FLUSH PRIVILEGES;
這樣就可以在其它任何的主機上以用戶名root和密碼123456遠程訪問mysql了
9另一種是如果只想用戶root從ip為192.168.1.6的主機只能訪問其中某一個數(shù)據(jù)庫名為db,并使用123456作為密碼,可以執(zhí)行命令
mysql>GRANT ALL PRIVILEGES ON db.* TO 'root'@'192.168.1.3' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
遠程訪問mysql的錯誤解決方法相關(guān)文章: