今天開發上線新系統反饋數據庫連接有問題。自己分別在命令行下及navicat進行連接發現,發現root用戶密碼在命令行下可以正常連接,但是新建立的子用戶連接不上。於是就換成管理員密碼。立即就連接上了。看來是密碼設置問題。隨即就換了密碼就可以了。
切記兩個密碼策略不一樣,一定要更按照規則設置密碼,很有可能是不符合規則導致連接不上。從另一個加密碼規則切換到另一個加密碼規則密碼就不好使了。
但是用navicat連接不上,Client does not support authentication protocol requested by server,必須把密碼插件必須改為:mysql_native_password。
解決方案
USE mysql;
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
FLUSH PRIVILEGES;
也可以參數my.cnf中加上
default_authentication_plugin=mysql_native_password
查看當前用戶使用的密碼驗證插件
mysql> show variables like '%auth%';
查看 MySQL8 支持的密碼驗證插件
mysql> show plugins;
修改系統默認的密碼驗證插件配置參數方式 default-authentication-plugin
設置默認密碼驗證插件
default-authentication-plugin=caching_sha2_password
啟動參數方式 --default-authentication-plugin C:\Users\jie>D:\chengxu\MySQL\mysql-8.0.12-winx64\bin\mysqld --default-authentication-plugin=mysql_native_password
查看用戶密碼插件 mysql> select host, user, plugin from mysql.user;