1. 程式人生 > >遠程連接MYSQL8.0服務器問題

遠程連接MYSQL8.0服務器問題

如果 pda 說明 name 嘗試 分號 但是 查詢 記錄


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的環境變量

  1. 登錄MySQL mysql -u root -p
  2. 回車後輸入密碼
  3. 選擇 要操作的服務 use mysql; 我是使用的mysql作為名稱,根據你自己服務器名稱輸入命令
  4. 查看mysql 數據庫的 user 表中當前 root 用戶的相關信息(host plugin)select host,user,authentication_string,plugin from user;
    技術分享圖片
    執行完命令後顯示一個表格, root 用戶的 host默認顯示的localhost,說明只支持本地訪問,不允許遠程訪問。
  5. 先給root賬戶授權,這裏我直接給了所有權限 grant all privileges on *.* to ‘root‘@‘%‘ with grant option;
  6. 更改 root用戶host 的默認配置 update user set host=‘%‘ where user=‘root‘;
  7. 執行前面的查詢命令查看root的host是否改變為localhost(如果失敗請繼續往後看)
  8. 然後更改加密規則 ALTER USER ‘root‘@‘%‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;
  9. 更新用戶密碼ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘password‘;
  10. 刷新權限 FLUSH PRIVILEGES;
    技術分享圖片
    成功後,可以看到root的host改變了,plugin也變成了mysql_native_password(以前也是mysql_na...但是要修改後才能真的連接成功,很玄學)

!如果上面的步驟你的修改不成功請接著往下看

直接添加用戶的方法

很多人可能和我一樣,前面的直接修改root用戶失敗,之後我嘗試了直接添加用戶的方法成功了,首先你要確保沒有犯低級錯誤,上面的命令行大多是由分號的,請仔細檢查.

  1. 啟動cmd,到第三步驟為止都一樣,先創建一個用戶 Create user ‘name‘@‘%‘ identified by ‘password‘; 名字自己定密碼自己定. 執行查詢用戶命令後可以看到多了一個用戶,這裏我創建的是else.它的host應該為localhost,之前我忘記截圖了.他的plugin是caching_.....
    技術分享圖片

  2. 對用戶授權 grant all privileges on *.* to ‘name‘@‘%‘ with grant option;
  3. 修改host update user set host=‘%‘ where user=‘else‘;
  4. 修改加密方式ALTER USER ‘else‘@‘%‘ IDENTIFIED BY ‘password‘ PASSWORD EXPIRE NEVER;
  5. 更新密碼 ALTER USER ‘else‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘password‘;
  6. 刷新權限FLUSH PRIVILEGES;
  7. 查詢用戶可以看到else用戶的host為"%" plugin為"mysql_native_password"這樣基本就代表成功了.
  8. 問題到此解決了!

# 後記 #
我的root修改是失敗的,但是在新建完用戶並完成修改後再次修改root就成功了,不知道怎麽回事;
總之要運行遠程連接,必須保證服務器端用戶的host不為”localhost”,plugin為” mysql_native_password.”
所有操作方法都來源於網絡,參考了眾多帖子,沒有做記錄不好寫明來源,抱歉.
最後祝君成功!

這是自己解決問題時的的筆記,如有錯誤請評論或者聯系我謝謝

遠程連接MYSQL8.0服務器問題