遠端連線MySQL伺服器

2022-09-11 09:21:12 字數 1998 閱讀 2972

在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服務了。

*********************************************==7月4號新增

有時在上述操作都完成後,連線伺服器時還是會報錯: authentication plugin 'caching_sha2_password' cannot be loaded, 這是因為mysql 8.0 預設使用 caching_sha2_password 身份驗證機制 —— 從原來的 mysql_native_password 更改為 caching_sha2_password。 

從 5.7 公升級 8.0 版本的不會改變現有使用者的身份驗證方法,但新使用者會預設使用新的 caching_sha2_password 。

方法之一,修改使用者的密碼和加密方式

alter user 'root'@'localhost' identified with mysql_native_password by 'root';

這裡的使用者名稱和密碼根據實際情況來輸入。

mysql伺服器遠端連線

step1 控制台輸入mysql u root p mysql 系統提示輸入資料庫root使用者的密碼,輸入完成後即進入mysql控制台,注意第乙個mysql是執行命令,第二個mysql是系統資料名稱 step2 控制台輸入grant all privileges on to root identi...

連線遠端MySQL伺服器

1。改表法。可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 mysql 資料庫裡的 user 表裡的 host 項,從 localhost 改稱 mysql u root pvmwaremysql use mysql my...

mysql 連線遠端伺服器

想要在本地連線遠端伺服器上的mysql,需要在遠端伺服器的mysql配置裡面,修改一下訪問許可權 mysql的配置裡面,預設只能本地訪問,在伺服器上,修改 etc mysql my.cnf檔案 找到這一行,bind address 127.0.0.1,注釋掉,儲存退出 然後還需要修改mysql登入使...