mysqli_connect函數連接MySQL80的問題解決


前情提要:由於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連接數據庫了!

  

  文章連接:https://stackoverflow.com/questions/50026939/php-mysqli-connect-authentication-method-unknown-to-the-client-caching-sha2-pa

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM