萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Linux 下 MySQL 安裝後無法登入:密碼設定與權限修復實戰

問題現象

新裝 MySQL,執行 mysqladmin password '123' 後無法登入(無論輸入密碼與否)。

原因分析

mysqladmin password 依賴現有權限表結構;若權限表異常或版本不匹配(MySQL 5.7+ authentication_string 欄位),直接修改失效。

標準修復流程

  1. 停止服務:systemctl stop mysqld
  2. 跳過權限啟動:
    mysqld_safe --skip-grant-tables &
  3. 免密登入並修復:
    mysql -u root -p
    -- 直接 Enter
    USE mysql;
    -- MySQL 5.7+
    UPDATE user SET authentication_string=PASSWORD('newpass') WHERE User='root';
    -- 5.6 舊版
    UPDATE user SET Password=PASSWORD('newpass') WHERE User='root';
    FLUSH PRIVILEGES;
    QUIT;
  4. 重啟正常服務:
    systemctl restart mysqld
  5. 驗證:mysql -u root -p'newpass'

MySQL 8.0 專用:ALTER USER 語法

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
-- 或支援 caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPass123!';

預防建議

  • 安裝後立即執行 mysql_secure_installation 互動式安全初始化。
  • 避免直接用 mysqladmin password,改用 ALTER USER 或 SET PASSWORD。
  • 保留至少一個擁有完整權限的備用管理帳號(admin@%)。
copyright © 萬盛學電腦網 all rights reserved