報錯:
SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers
解決:
在D:\phpStudy\PHPTutorial\MySQL下的my.ini中的mysqld下加如下語句
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
重啟PHPstudy,之后報錯:
SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
解決:
bin目錄下連接數(shù)據(jù)庫捅膘,
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'root';
注:by后面是數(shù)據(jù)庫密碼髓棋,自己設置
刷新權限
flush privileges;
然后再my.ini中的mysqld下面加
default_authentication_plugin = mysql_native_password?? 如圖1所示
重啟PHPstudy系宜,連接成功
參考來源:
1.ThinkPHP 3.2 連接MySQL 8 出現(xiàn)的utf8mb4字符集錯誤
ThinkPHP 3.2 連接MySQL 8 出現(xiàn)的utf8mb4字符集錯誤
2018-9-20 03:48 PM
ThinkPHP 3.2 連接MySQL 8時報如下錯誤:
SQLSTATE[HY000] [2054] Server sent charset unknown to the client. Please, report to the developers
網上查詢得知MySQL 8 默認字符集為utf8mb4运敢,給出的解決方法都是設置MySQL的默認字符集為老版本的utf8蠕蚜,然而其實只需要在MySQL配置文件中[mysqld]下加這兩行
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
同時在TP配置文件中的數(shù)據(jù)庫連接信息中指明字符集utf8即可
'DB_CHARSET'=> 'utf8', // 字符集
如果又出現(xiàn)這樣的報錯:
QLSTATE[HY000] [2054] The server requested authentication method unknown to the client
是因為MySQL8中用戶的認證類型(Authentication type)默認為cacheing sha2 password導致的錯誤捻撑,需要修改用戶權限認證方式為5.x的認證方式
alter user 'root'@'%' identified with mysql_native_password by '123456';
#刷新權限
flush privileges;
然后在MySQL配置文件中[mysqld]下加上
default_authentication_plugin=mysql_native_password