前提條件:擁有資料庫伺服器的作業系統管理員權限。核心原理是啟動 MySQL 時跳過權限驗證 (skip-grant-tables),以免密碼登入後修改密碼,最後恢復正常驗證模式。
my.ini,在 [mysqld] 區段下新增 skip-grant-tables。net stop mysql / net start mysql 重啟 MySQL。mysql -u root 直接進入控制台。USE mysql;
UPDATE user SET password=PASSWORD('新密碼') WHERE user='root';
FLUSH PRIVILEGES;
skip-grant-tables,再次重啟服務,新密碼即生效。service mysqld stop 或 killall -TERM mysqld。mysqld_safe --skip-grant-tables & (或 /usr/local/mysql/bin/mysqld_safe --skip-grant-tables & 指定路徑)。service mysqld start。若知道舊密碼或未啟用 skip-grant-tables,可直接執行:
mysqladmin -u root -p password '新密碼'
mysqld 中的 d 代表 Daemon (守護進程)。FLUSH PRIVILEGES; 刷新權限表。