標籤:HERE 和我 cal 連接埠 jpg win 本地 更新 授權
title: 遠端連線MYSQL8.0伺服器問題
date: 2018-07-07 11:02:26
updated:
tags: [MYSQL,坑]
description:
keywords:
comments:
image:
---
問題描述: 先前使用MYSQL5.1,遠端訪問MYSQL伺服器沒問題,遇到的問題也就是防火牆問題,修改出入站規則後輕鬆的解決了.但是MYSQL8.0就很坑了,按照網上的解決辦法折騰了兩個小時,最後解決,依然不明白哪裡有問題,只能把操作複現,為以後使用留個記錄.
機器環境
作業系統:win10
gui工具:navcat12
MYSQL:v8.011
防火牆開啟入站連接埠
# 直接對root使用者修改的方法 #
操作前請在 bin 目錄下運行cmd,或者設定好bin的環境變數
- 登入MySQL
mysql -u root -p
- 斷行符號後輸入密碼
- 選擇 要操作的服務
use mysql; 我是使用的mysql作為名稱,根據你自己伺服器名稱輸入命令
- 查看mysql 資料庫的 user 表中當前 root 使用者的相關資訊(host plugin)
select host,user,authentication_string,plugin from user;
執行完命令後顯示一個表格, root 使用者的 host預設顯示的localhost,說明只支援本地訪問,不允許遠端存取。
- 先給root賬戶授權,這裡我直接給了所有許可權
grant all privileges on *.* to ‘root‘@‘%‘ with grant option;
- 更改 root使用者host 的預設配置
update user set host=‘%‘ where user=‘root‘;
- 執行前面的查詢命令查看root的host是否改變為localhost(如果失敗請繼續往後看)
- 然後更改加密規則
ALTER USER ‘root‘@‘%‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;
- 更新使用者密碼
ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘password‘;
- 重新整理許可權
FLUSH PRIVILEGES;
成功後,可以看到root的host改變了,plugin也變成了mysql_native_password(以前也是mysql_na...但是要修改後才能真的串連成功,很玄學)
!如果上面的步驟你的修改不成功請接著往下看
直接添加使用者的方法
很多人可能和我一樣,前面的直接修改root使用者失敗,之後我嘗試了直接添加使用者的方法成功了,首先你要確保沒有犯低級錯誤,上面的命令列大多是由分號的,請仔細檢查.
-
啟動cmd,到第三步驟為止都一樣,先建立一個使用者 Create user ‘name‘@‘%‘ identified by ‘password‘; 名字自己定密碼自己定. 執行查詢使用者命令後可以看到多了一個使用者,這裡我建立的是else.它的host應該為localhost,之前我忘記了.他的plugin是caching_.....
- 對使用者授權
grant all privileges on *.* to ‘name‘@‘%‘ with grant option;
- 修改host
update user set host=‘%‘ where user=‘else‘;
- 修改加密方式
ALTER USER ‘else‘@‘%‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;
- 更新密碼
ALTER USER ‘else‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘password‘;
- 重新整理許可權
FLUSH PRIVILEGES;
- 查詢使用者可以看到else使用者的host為"%" plugin為"mysql_native_password"這樣基本就代表成功了.
-
問題到此解決了!
# 後記 #
我的root修改是失敗的,但是在建立完使用者並完成修改後再次修改root就成功了,不知道怎麼回事;
總之要運行遠端連線,必須保證伺服器端使用者的host不為”localhost”,plugin為” mysql_native_password.”
所有操作方法都來源於網路,參考了眾多文章,沒有做記錄不好寫明來源,抱歉.
最後祝君成功!
這是自己解決問題時的的筆記,如有錯誤請評論或者聯絡我謝謝
遠端連線MYSQL8.0伺服器問題