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

Linux 安裝 MySQL 5.6+ 無初始密碼問題解決:跳過授權表重置 root 密碼

     編輯:MySQL 綜合教學

現象

MySQL 5.6+ 安裝後不再預設空密碼,而是生成隨機初始密碼並寫入日誌(/var/log/mysqld.log 或 /root/.mysql_secret),若未記錄則無法登入。

通用重置流程(適用忘記密碼、無初始密碼)

  1. 停止服務:systemctl stop mysqld 或 /etc/init.d/mysql stop。
  2. 跳過授權表啟動:
    mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
    --skip-networking 防止遠端連入,安全第一。
  3. 免密登入:mysql -u root(直接進入 mysql shell)。
  4. 更新密碼:
USE mysql;
UPDATE user SET authentication_string=PASSWORD('NewPass123') WHERE User='root' AND Host='localhost';
-- 5.7.6+ 欄位為 authentication_string,舊版為 Password
FLUSH PRIVILEGES;
QUIT;
  1. 正常重啟:殺掉 mysqld_safe 進程,systemctl start mysqld。
  2. 驗證:mysql -u root -pNewPass123。

MySQL 5.6/5.7/8.0 細節差異

版本密碼欄位初始密碼位置FLUSH PRIVILEGES 必要性
5.6Password安裝輸出或 .mysql_secret是
5.7authentication_string/var/log/mysqld.log(隨機生成)是
8.0authentication_string/var/log/mysqld.log(隨機生成)是(且需 ALTER USER 'root'@'localhost' IDENTIFIED BY 'pwd';)

MySQL 8.0 專用重置語法

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123';
FLUSH PRIVILEGES;

或啟動時加 --init-file=/tmp/reset.sql,檔案內容同上。

安全提醒

  • 重置後務必移除 --skip-grant-tables 並重啟正常服務。
  • 生產環境建議建立專用管理帳號,禁用 root 遠端登入:DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1'); FLUSH PRIVILEGES;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved