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

MySQL root 密碼重置全平台指南:Windows 服務模式與 Unix 免密啟動詳解

     編輯:MySQL 綜合教學

Windows 平台(服務模式)

  1. 以管理員身份登錄,打開「服務」(services.msc),停止 MySQL 服務
  2. 建立初始化文件 C:\mysql-init.txt,單行內容:
    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');
  3. 以 --init-file 啟動服務器:
    # 若為 Zip 解壓安裝
    C:\mysql\bin\mysqld --init-file=C:\mysql-init.txt --console
    
    # 若為 MSI 安裝(需指定 defaults-file)
    "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe"
      --defaults-file="C:\Program Files\MySQL\MySQL Server 5.7\my.ini"
      --init-file=C:\mysql-init.txt --console
  4. 觀察控制台輸出無誤後 Ctrl+C 停止,刪除 mysql-init.txt
  5. 在「服務」中正常啟動 MySQL,用新密碼登錄驗證

Unix/Linux 平台

  1. 停止服務:systemctl stop mysqld 或 service mysql stop
  2. 以 --skip-grant-tables --skip-networking 啟動:
    mysqld_safe --skip-grant-tables --skip-networking &
  3. 無密碼登錄修改密碼:
    mysql -u root
    mysql> FLUSH PRIVILEGES;
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword';
    -- 或 5.7.5 以前
    mysql> UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPassword') WHERE User='root' AND Host='localhost';
    mysql> FLUSH PRIVILEGES;
    mysql> EXIT;
  4. 正常重啟:systemctl restart mysqld

MySQL 8.0 注意事項

  • PASSWORD() 函數已移除,必須用 ALTER USER ... IDENTIFIED BY
  • mysql.user 表結構變更,authentication_string 取代 password 列
  • 若啟用 caching_sha2_password 插件,客戶端需 8.0+ 版本

通用驗證

mysql -u root -p'MyNewPassword' -e "SELECT VERSION();"

安全提醒: 重置後務必檢查是否存在匿名用戶(User='')、root@'%' 遠程帳號、測試庫 test,執行 mysql_secure_installation 清理。

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