標籤:roo oca 命令 inf 串連mysql 用戶端 使用 檢查 sql
在CentOS虛擬機器上安裝好了MySQL服務以後,在windows上用Workbench用戶端去串連時碰到很多問題,現在把解決過程記錄一下。
1.在Windows上ping CentOS IP是可以ping通的,在Workbench上配置好後出現如下提示,
在Windows命令列裡輸入 telnet 192.168.199.129 3306 執行,也得到:could not open connection to the host, on port 3306 這樣的提示。
在網上查了一下,覺得可能是3306連接埠沒有開啟,先檢查一下3306連接埠的使用方式,
3306這個連接埠沒有被別的進程佔用。然後看看防火牆的情況,CentOS7中防火牆改成了firewall,查看firewall的服務狀態,
firewall防火牆正在運行。接下來查詢3306連接埠是否開放,輸入 firewall-cmd --query-port=3306/tcp,如果顯示的是no,則輸入 firewall-cmd --permanent --add-port=3306/tcp 開放3306連接埠,
重啟防火牆,輸入 firewall-cmd --reload。
2.完成以上步驟後,再次在Windows命令列中輸入 telnet 192.168.199.129 3306 執行,得到類似:host is not allowed to connect mysql 這樣的提示。
在網上查了一下,似乎是許可權的問題,一般有兩個途徑,
第一個方法,可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改稱"%",
在CentOS虛擬機器中進去MySQL,用下面的語句,
mysql>use mysql;
mysql>update user set host = ‘%‘ where user = ‘root‘;
mysql>select host, user from user;
但是改完了後,還是不行,還是提示 host is not allowed to connect mysql。
試第二個方法,授權,例如你想myuser使用mypassword從任何主機串連到MySQL伺服器的話,用下面的語句,
mysql>grant all privileges on *.* to ‘myuser‘@‘%‘ identified by ‘mypassword‘ with grant option;
mysql>flush privileges;
執行完後成功了,可以用workbench串連上MySQL服務了。
遠端連線MySQL伺服器