Windows 環境下 MySQL 5.6 忘記 Root 密碼的經典解決方案:通過 --skip-grant-tables 跳過權限驗證,免密登入修改 mysql.user 表 password 列。本文提供圖文並茂的步驟、常見報錯處理、驗證清單。
# 查看版本 rpm -qa | grep MySQL # MySQL-server-5.6.15-1.el6.x86_64 # MySQL-client-5.6.15-1.el6.x86_64 # ...
net stop mysql 或 services.msc 停止mysqld.exe、mysql.exe 進程cd "D:\Program Files\MySQL\MySQL Server 5.6\bin"mysqld --skip-grant-tablesready for connections)
mysql -u root -p
-- MySQL 5.6 使用 password 列
UPDATE mysql.user SET password = PASSWORD('new_root_password') WHERE User = 'root';
FLUSH PRIVILEGES;
--skip-grant-tables 窗口 (Ctrl+C 或關閉進程)net start mysqlmysql -u root -pmysqld --skip-grant-tables 閃退.err 文件Access deniedFLUSH PRIVILEGES 未執行、Host 值不匹配。檢查 SELECT User, Host FROM mysql.user WHERE User='root';my.ini 中 basedir、datadir 路徑是否正確,刪除 .pid 文件重試# 停止服務
systemctl stop mysqld
# 啟用 skip-grant-tables
systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
systemctl start mysqld
# 修改密碼 (5.6)
mysql -uroot -e "UPDATE mysql.user SET password=PASSWORD('newpass') WHERE User='root'; FLUSH PRIVILEGES;"
# 恢復正常
systemctl unset-environment MYSQLD_OPTS
systemctl restart mysqld