關(guān)于mysql8.0版本和PHP7不兼容的問題

新安裝了mysql8.0版本。當(dāng)PHP連接數(shù)據(jù)庫的時候,會出現(xiàn)一個情況就是連接數(shù)據(jù)庫失敗,一般來說會出現(xiàn)以下兩種情況:

1.報錯:PDO::__construct(): Server sent charset (255) unknown to the client. Please, report to the developers

2.報錯:PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]

第一種出現(xiàn)這種情況主要是mysql8.0默認(rèn)是utfmb4的格式,PHP默認(rèn)的是UTF8格式,因此需要將mysql8.0默認(rèn)格式設(shè)置為utf8,

就需要修改my.cnf,下面是我設(shè)置的my.cnf


[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

collation-server = utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

第二種情況,那是因為用戶身份認(rèn)證的加密方式不兼容導(dǎo)致的,mysql8.0中默認(rèn)方式為caching_sha2_password,引起老版本兼容性問題,老版本加密方式為mysql_native_password。

新建用老版加密方式初始化密碼的用戶即可:

CREATEUSERusername@localhostidentifiedwithmysql_native_passwordby'password';

然后在my.cnf中添加一行:default_authentication_plugin=mysql_native_password;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容