mysql 8.0.11遇到問題總結
阿新 • • 發佈:2019-01-01
1. 使用sqlyog連線mysql報錯,錯誤碼 1251
錯誤場景:
使用sqlyog連線mysql在賬戶名和密碼都正確的情況下總是失敗
但是在windows cmd視窗下用同樣的賬戶名和密碼操作就沒有任何問題
報錯資訊 :
錯誤程式碼 1251
client does not support authentication protocol requested by server; consider upgrading MySQL client
報錯原因:
mysql8 之前的版本中加密規則是mysql_native_password, 而在mysql8之後,加密規則是caching_sha2_password. 但是當前有很多資料庫工具和連結包都不支援“caching_sha2_password”, 比如說我用的這個版本的sqlyog, 所以,我們需要將加密規則更改為: mysql_native_password。
解決方案:
1. 修改my.ini配置檔案
在mysql8的版本中,解壓後的安裝包不含該檔案,所以我們需要手動建立
舉例 : 我的mysqll安裝在
E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64這個目錄下
所以,我就要在當前目錄新建my.ini檔案,如下:
E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64\my.ini
檔案內容如下:
[mysqld] # 設定3306埠 port=3306 # 設定mysql的安裝目錄 basedir=E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64 # 設定mysql資料庫的資料的存放目錄 datadir=E:\softWare\bigData\mysql8.0\mysql-8.0.11-winx64\data # 允許最大連線數 max_connections=200 # 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統 max_connect_errors=10 # 服務端使用的字符集預設為UTF8 character-set-server=utf8 # 建立新表時將使用的預設儲存引擎 default-storage-engine=INNODB # 預設使用“mysql_native_password”外掛認證 default_authentication_plugin=mysql_native_password [mysql] # 設定mysql客戶端預設字符集 default-character-set=utf8 [client] # 設定mysql客戶端連線服務端時預設使用的埠 port=3306 default-character-set=utf8
但是我修改了該檔案之後,連線仍然報相同的錯誤,也就是說配置沒有生效.
現在回想起來應該是我更改完配置沒有重啟mysql導致的!
2.在cmd中依次執行以下命令 :
ALTER USER '使用者名稱'@'localhost' IDENTIFIED BY '密碼' PASSWORD EXPIRE NEVER; #修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼'; #更改使用者的密碼
FLUSH PRIVILEGES; #重新整理
修改完之後,輸入新的使用者名稱密碼進行連線,顯示介面如下:
問題得到解決!
2.安裝好mysql8.0.11,啟動時遇到的問題
問題描述:
執行 net start mysql 提示 : 服務名無效
解決方法:
執行命令:
mysqld --install
後續報錯:
資訊如下:
Install/Remove of the Service Denied
解決方法:
進入到c盤 windows目錄 system32, 找到cmd.exe檔案,右鍵--> 以管理員的身份執行即可
然後在執行 net start mysql 命令, 成功進入到mysql介面!