這是MySQL8.0一個登錄驗證的問題。
第一步 初始化配置
如果已經初始化了,就直接跳過第一步
你需要知道的是:MySQL安裝的路徑。我的路徑是:G:\mysql-8.0.11-winx64
在C:\Windows\System32路徑下找到cmd.exe,右鍵以管理員身份運行,並切換到mysql-8.0.11-winx64中。
輸入命令初始化data目錄:
mysqld --initialize --console
會出現一段內容,找到內容中root@localhost: 它后面就是登錄數據庫的初始密碼,一定要記下來
再輸入命令初始化mysql服務
mysqld --install
然后輸入命令啟動mysql
net start mysql
如果已經啟動了,他會提示你服務已經啟動。
如果提示拒絕訪問,那你肯定沒有以管理員身份運行cmd。在C:\Windows\System32路徑下找到cmd.exe,右鍵以管理員身份運行。繼續上步操作。
接下來,登錄到數據庫
mysql -u root -p
密碼:輸入就是剛才記下來的,
登陸成功后接着更改密碼,輸入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
這以上只是確保不會出現其他的問題,還不能解決密碼驗證的問題。
第二步 修改MySQL的登錄驗證配置
cmd連接mysql
mysql -u root -p
修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新一下用戶的密碼
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
刷新權限
FLUSH PRIVILEGES;
重置下密碼(123456789這里是你要設置的密碼)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456789';
完成以后,試着重新連接mysql數據庫,如果還沒有成功,繼續往下走:
第三步 根目錄增加配置文件
在mysql-8.0.11-winx64這個目錄下,新建my.ini文件,文件內容如下,記得保存:
[mysqld] # 默認使用“mysql_native_password”插件認證 default_authentication_plugin=mysql_native_password [mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 [client] # 設置mysql客戶端連接服務端時默認使用的端口 port=3306 default-character-set=utf8
接下來需要重啟mysql服務。
先停止mysql服務,
net stop mysql
如果提示拒絕訪問,那你肯定沒有以管理員身份運行cmd。在C:\Windows\System32路徑下找到cmd.exe,右鍵以管理員身份運行。繼續上步操作。
已停止成功后,繼續輸入命令啟動mysql
net start mysql
查看是不是可以正常啟動
如果無法啟動,就是那個my.ini文件的問題,嘗試只保留文件中的一部分
[mysqld] # 默認使用“mysql_native_password”插件認證 default_authentication_plugin=mysql_native_password
繼續啟動mysql。
啟動成功后,就說明修改配置文件成功,嘗試去連接數據庫,應該就成功了