2024年7月7日 星期日

存取 MySQL 出現 "#1044 Access denied for user" 錯誤

昨晚想在鄉下家的樹莓派上重建之前在租用的英國虛擬主機 Hostinger 上佈署的 PHP 架站系統 EasyUICMS, 但在執行系統安裝要建立資料庫時卻出現 "#1044 Access denied for user" 錯誤 :




但我用同樣的帳密在 phpMyAdmin 卻可登入成功, 不過登入後手動建立資料庫也是遇到同樣的 1044 錯誤, 可見這應該是這個 pi 帳號存取權限不足的問題. 

搜尋找到下面這篇文章 : 


其中有個回覆給出指令來賦予登入帳號所有權限 :




我找出當時在此 Pi 3 上安裝 Apache + PHP + MySQL 的紀錄 :


比對指令發現當時缺了一個 FLUSH PRIVILEGES 這條指令, 難怪帳號 pi 沒有存取資料庫權限, 正確程序應該是執行這兩條指令 :

GRANT ALL PRIVILEGES ON *.* TO 'pi'@'localhost' IDENTIFIED BY 'mysql'; 
FLUSH PRIVILEGES;

關於處理 MySQL 權限下面這篇有完整指令集 : 


於是進入終端機以 root 身分登入 MySQL Shell 後執行此兩指令 : 

pi@raspberrypi:/var/www/html/twstock $ sudo mysql -u root -p   
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 96
Server version: 10.1.38-MariaDB-0+deb9u1 Raspbian 9.0

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'pi'@'localhost' IDENTIFIED BY 'mysql'; 
Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> flush privileges;     
Query OK, 0 rows affected (0.02 sec)

按 Ctrl+C 即可跳出 MySQL Shell 介面.

用 admin 登入系統後按 "系統安裝" 鈕果然就能順利建立資料庫與系統資料表了 :






哇, 多年前用 PHP 寫的架站系統 EasyUICMS 重出江湖, 真是久違了. 

沒有留言 :