php連mysql8報錯的解決方法:1、在「/etc/my.cnf」中將「mysql_native_password」前面的註解關掉;2、進入mysql中,以「mysql_native_password」的方式更新密碼即可。
本教學操作環境:CentOS 7系統、mysql8版、DELL G3電腦
php連mysql8報錯怎麼辦?
PHP連接MYSQL8失敗的解決方法
##0x01 問題晚上群組裡有學生說
php
炸了,兩小時沒弄出來。
讓他加了
mysqli_error()也沒輸出,看了PHP相關元件,看了
mysql日誌都沒反應,由於是雲端主機,還嘗試把
localhost改成
127.0.0.1
然後去看了下mysql
版本,
的更新狀況,於是就把孩子撈起來了,哈哈。 簡單來說,在
mysql8
caching_sha2_password,這個方式成為了新的驗證機制,預設在設定密碼的時候也是用的這種方式進行處理的,原有的
mysql_native_password被替換掉了。這就是為什麼
php
0x02 解決1、在
/etc/my.cnf
(學生用的
centos )中將
前面的註解關掉。即改回老的驗證方式:<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">[mysqld]
default_authentication_plugin=mysql_native_password</pre><div class="contentsignin">登入後複製</div></div>
2、進入mysql
中,以mysql_native_password
的方式更新密碼即可。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
mysql>flush privileges;</pre><div class="contentsignin">登入後複製</div></div>
或可以新增加一個使用者。
mysql>CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; mysql>GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'; mysql>flush privileges;
以上是php連mysql8報錯怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!