-
安裝 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
- 配置文件: