首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Linux 安裝 MySQL 5.6 RPM 包報錯「管理帳號安裝失敗」:root 密碼未初始化的完整解決方案

     編輯:MySQL 綜合教學

RHEL/CentOS 安裝 MySQL 5.6 RPM 時,mysql_install_db 靜默失敗導致 mysql.user 表為空,root 無法登入。解法:安全模式啟動 → 手動插入 root 用戶 → 正常啟動 → 修改密碼。

標準安裝流程回顧

  1. 移除系統自帶 MariaDB/MySQL:yum remove mysql* mariadb* 或 rpm -e。
  2. 安裝 RPM:rpm -ivh mysql-community-server-5.6.x.rpm mysql-community-client-5.6.x.rpm。
  3. RPM 執行 mysql_install_db 初始化系統表、生成隨機 root 密碼寫入 /root/.mysql_secret。
  4. service mysqld start → mysql -u root -p'密碼' 登入 → 修改密碼。

故障現象

  • service mysqld start 正常,但 mysql -u root -p'xxx' 報 Access denied。
  • /root/.mysql_secret 存在,但密碼無效。
  • 安全模式下 SELECT * FROM mysql.user; 回傳空表 → 初始化失敗。

根因

MySQL 5.6 RPM 的 mysql_install_db 在某些環境(SELinux、權限、目錄殘留)下靜默失敗,不報錯、不寫日誌,導致 mysql.user 空表。

修復步驟(實測有效)

  1. 停止服務
    service mysqld stop
  2. 安全模式啟動(跳過權限表、跳過網絡)
    mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
  3. 無密碼直連
    mysql -u root
  4. 手動插入 root 用戶(MySQL 5.6 欄位順序)
    USE mysql;
    INSERT INTO user
      (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv,
       Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv,
       Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv,
       Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv,
       Create_view_priv, Show_view_priv, Create_routine_priv, Alter_routine_priv, Create_user_priv,
       Event_priv, Trigger_priv, Create_tablespace_priv, ssl_type, ssl_cipher, x509_issuer, x509_subject,
       max_questions, max_updates, max_connections, max_user_connections, plugin, authentication_string, password_expired)
    VALUES
      ('localhost', 'root', PASSWORD('root'),
       'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y',
       '', '', '', '', 0, 0, 0, 0, '', '', 'N');

    關鍵欄位:Host、User、Password、最後 password_expired='N'(否則首次登入強制改密)。

  5. 退出、關閉安全模式、正常啟動
    exit
    pkill mysqld_safe
    service mysqld start
  6. 登入修改密碼
    mysql -u root -proot
    SET PASSWORD = PASSWORD('NewStrongPass123!');
    FLUSH PRIVILEGES;

預防建議

  • 安裝前 rm -rf /var/lib/mysql 徹底清理舊數據目錄。
  • 關閉 SELinux 或設定 setenforce 0 臨時放行。
  • 優先使用官方 Yum Repo(mysql-community-release)安裝,自動解決依賴與初始化。
  • MySQL 5.7+ 已改用 mysqld --initialize-insecure,此問題較少見。

總結

MySQL 5.6 RPM 初始化靜默失敗 → mysql.user 空表 → root 無法登入。安全模式 + 手動 INSERT root + 正常啟動 + 改密 三步驟徹底修復,避免重裝循環。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved