前情提要:由於MySQL8.0.*與MySQL5.*的加密方式發生了變化,所以會導致如下的錯誤出現:
error: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
至於采用什么加密了我們就不要去深究了,這就好比我們使用一個新產品,知道怎么用就行了,至於原理我們就不要深究了。
編程場景:
前提:假如我們需要用root用戶連接數據庫,密碼假如為:root,host為:localhost
以前的方式連接數據庫為:$connect=mysqli_connect("localhost","root","root");
結果在mysql8.0之后就會報上面的錯:
解決辦法:
情況1:
打開MySQL8.0的客戶端,也就是Command line client,將下面的這句話復制,修改,粘貼,執行就ok了。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
你要根據自己的用戶名,密碼,host進行修改再執行
情況2:
如果我們想創建一個新用戶可以使用mysqli_connect進行如下操作,同樣再Command line client客戶端下執行:
CREATE USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
這樣你就可以用user1且使用mysqli_connect連接數據庫了!