SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client


  • 安裝 nextcloud 的時候選擇的是 mysql ,在鏈接 mysql 的時候報錯,信息如下:

    SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
    
  • 搜索了下應該是 MySQL 8默認使用了新的密碼驗證插件:caching_sha2_password ,而有些 PHP 版本不支持這個問題造成的

  • 解決辦法:

    • 修改登錄用戶的 plugin 為 mysql_native_password

      mysql -uroot -p
      use mysql;
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';
      FLUSH PRIVILEGES;
      
    • 以上修改完成以后,本地鏈接沒有問題,但是遠程連接還是不行,需要修改 host 為 %

      update user set host = '%' where user ='root';
      
    • 假如上一步修改不成功,提示有重復數據 Duplicate entry '%-root' for key 'user.PRIMARY',刪除其他的信息

      delete user where user='root' and host ='%';
      
  • 以上可以解決了已建賬號的密碼認證問題

  • 確保新添加的用戶可以正常使用,需要把配置文件修改了

    • 配置文件:/etc/mysql/my.cnf
    • 解決辦法:打開該文件,在 [mysqld] 模塊下面添加一句 default_authentication_plugin=mysql_native_password


免責聲明!

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



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