MySQL 8.4 LTS版配合 PHP 5.6 或 PHP 7.4 連線的設定記錄

網路與網站相關議題和知識
回覆文章
dtchang
Site Admin
文章: 114
註冊時間: 2017-01-22, 16:54

MySQL 8.4 LTS版配合 PHP 5.6 或 PHP 7.4 連線的設定記錄

文章 dtchang » 2025-03-22, 18:35

(作業系統為: Windows 11 Pro)
建立可使用於舊版 PHP (7.4版以前)的使用者連線名稱(限用 mysql_native_password) (MySQL 8預設使用較安全和複雜的加密方法 caching_sha2_password, PHP 7.4 及以後的版本才有支援)
範例:

代碼: 選擇全部

CREATE USER 'iesi'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword!';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'iesi'@'localhost';
當下達SQL指令,產生如下錯誤時:
Code: 1524. Plugin 'mysql_native_password' is not loaded
正確的修改方式為設定 mysql.ini:
(https://www.alessioligabue.it/en/blog/m ... not-loaded)
(https://php.watch/articles/fix-php-mysq ... not-loaded)

代碼: 選擇全部

[mysqld]
...
mysql_native_password=ON
然後重開 MySQL. 以下是成功的記錄:
11:31:10 ALTER USER 'iesi'@'localhost' IDENTIFIED WITH mysql_native_password BY 'iesi' 0 row(s) affected 0.016 sec
使用 MySQL Workbench 時,在使用者登入與權限畫面中, authentication type: standard 即為mysql_native_password型式.

代碼: 選擇全部

SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME = 'mysql_native_password';
'mysql_native_password', 'ACTIVE'
註: 在 MySQL 9.x 中的plugin目錄下附有 mysql_native_password.dll, 將其複制到 8.x 是無效且會產生錯誤的做法.

回覆文章