一、數據庫失敗Warning: mysqli_connect(): The server requested authentication method unknown to t...
1 <?php 2 3 //查詢數據的查詢語句 4 //1.建立與數據庫服務器之間的連接 5 $connection = @mysqli_connect('127.0.0.1','root','123456','demo2'); 6 7 8 var_dump($connection);
查詢資料之后發現:
查了一下發現是mysql8密碼機制換成了cha2導致的,解決辦法hin簡單,來一個SQL命令
1 mysql> ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
二、不要在MySQL中使用utf8,改用utf8mb4
1.為什么需要使用utf8mb4???
在mysql、MariaDB中:
-
MySQL的“utf8mb4”是真正的“UTF-8”。長度是4個字節。
-
MySQL的“utf8”是mysql自己的一種“專屬的編碼”,它的最大字符長度為 3 字節。只是“UTF-8”標准的一個子集。
所以Emoji 表情(Emoji 是一種特殊的 Unicode 編碼,常見於 ios 和 android 手機上),和一些不常用的漢字,存儲就會報錯。
2、如何修改:
修改MySQL配置文件,修改mysql的客戶端默認連接字符集,服務端以及數據庫的默認字符集
只需要在MySQL配置文件中[mysqld]下加這兩行
1 character-set-server = utf8mb4 2 3 collation-server = utf8mb4_unicode_ci
3、最后是重啟mysql