標籤:iptables 連接埠 手動 exit 狀態 技術 sql命令 ica 失敗
今天想用navicat遠端連線虛擬機器中的MySQL資料庫,一直連不上,在網上搜尋了一下,發現原因是MySQL對遠端使用者登陸的授權問題。這裡說一下我的解決方案。(本人小白)
首先,我用navicat去遠程連結我虛擬機器中的MySQL,連結測試失敗。
然後在虛擬機器中查看網路連接埠資訊:
#netstat -ntpl
之後查看了防火牆的狀態,發現3306連接埠的資料包都是丟棄狀態
#iptables -vnL
這裡要清除防火牆中鏈中的規則
#iptables -F
在這之後,我又遠程連結了一下MySQL,出現了以下錯誤,查了一下,是因為MySQL沒有允許遠程登陸,所以要授權MySQL遠程登陸。
這裡先說一下MySQL登陸:
格式: mysql -h主機地址 -u使用者名稱-p使用者密碼
1、例1:串連到本機上的MYSQL
找到mysql的安裝目錄,一般可以直接鍵入命令mysql -uroot -p,斷行符號後提示你輸密碼,輸入密碼,直接斷行符號即可進入到MYSQL中了,MYSQL的提示符是:mysql>
2、串連到遠程主機上的MySQL
假設遠程主機的IP為:10.0.0.1,使用者名稱為root,密碼為123。則鍵入以下命令:
mysql -h10.0.0.1 -uroot -p123
(註:p與123(密碼)之間最好不加空格,其它也一樣)
3、退出MySQL命令
exit (斷行符號)
最後授權MySQL,允許遠端使用者登入訪問MySQL
手動增加可以遠端存取資料庫的使用者。
方法一、本地登入mysql,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,將"localhost"改為"%"
#mysql -u root -proot
mysql>use mysql;
mysql>update user set host = ‘%‘ where user = ‘root‘;
mysql>select host, user from user;
方法二、直接授權(推薦)
從任何主機上使用root使用者,密碼:youpassword(你的root密碼)串連到mysql伺服器:
# mysql -u root -proot
mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘youpassword‘ WITH GRANT OPTION;
操作完後切記執行以下命令重新整理許可權
FLUSH PRIVILEGES
這時再通過navicat遠程連結MySQL,連結測試,如,成功。
windows下用navicat遠程連結虛擬機器Linux下MySQL資料庫