問題概述
sqlstate[hy000] [2054] the server requested authentication method unknown to the client發生這種錯誤,是由於mysql 8預設使用了新的密碼驗證外掛程式:caching_sha2_password,而之前的php版本中所帶的mysqlnd無法支援這種驗證。解決這個問題,有兩種辦法。
一種辦法是公升級php支援mysql 8的新驗證外掛程式。
php 7.2.8和php 7.1.20已經可以支援caching_sha2_password,直接連線mysql 8。
截止php 7.0.31和php 5.6.37還無法支援caching_sha2_password,不知道後續版本是否會做出支援。
可以通過phpinfo()函式了解當前安裝的php是否支援caching_sha2_password:
本人解決的辦法如下
1 /etc/my.cnf配置檔案中,有一行:
# default-authentication-plugin=mysql_native_password請刪除注釋符號「#」並重新啟動mysqld使之生效,此後建立的賬戶均預設使用mysql_native_password。
2 登陸mysql
alter user 『native『@『localhost『 identified with mysql_native_password by 『new_password『;3 如果mysql 鏈結是使用static 將它改為false
搭建並使用mysql8 0
使用docker搭建 啟動映象 只對映埠,不掛載目錄,啟動 後續需要進入容器內修改配置,刪除容器後配置無法保留,資料無法保留 p 本地埠 容器內埠 name 指定容器name,後續通過name操作 e mysql root password 設定root密碼 可以使用命令檢視執行日誌 docker ...
mysql 8 0 近期使用問題彙總
公司伺服器近期將mysql全部從之前的5.7 公升級到了新的8.0版本,但是遇到了好多的坑,近期吭哧吭哧的改了兩個禮拜的儲存過程了,全部都是血淚啊。下面說說幾個大坑 1.mysql 8.0 使用其他客戶端登陸的許可權問題,登陸時一直提示 error 2059 hy000 authentication...
MYSQL8 0全文索引使用
概述 在一堆文字中找到含有關鍵字的應用。當然也可以用以下語句實現 select from 表名 where 欄位名 like abc 但是它的效率太低,是全盤掃瞄。mysql 提供了更高效的方法全文索引 fulltext 重要 mysql 5.6之前版本,只有myisam支援全文索引,5.6之後,i...