killall -TERM mysqld 或服務管理器停止。mysqld_safe --skip-grant-tables & (Linux) / mysqld --skip-grant-tables (Win)。mysql -u rootUPDATE mysql.user SET authentication_string=PASSWORD('新密碼') WHERE User='root';
FLUSH PRIVILEGES;
QUIT;
[mysqld] 區段加入 skip-grant-tables。systemctl restart mysqld / net stop/start mysql。skip-grant-tables 並再次重啟。INSERT INTO mysql.user (Host, User, authentication_string)
VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
實際是新增用戶而非修改既有 root。
mysqladmin -u root -p password 'newpass'
# 輸入舊密碼完成
net stop mysqlcd /d D:\usr\local\mysql\bin(依實際路徑)mysqld-nt --skip-grant-tables(視窗保持開啟)mysqladmin -u root flush-privileges password "newpass"mysqladmin -u root -p shutdown(輸入新密碼關閉)net start mysqlsystemctl stop mysqld
mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('newpass') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
pkill mysqld
systemctl start mysqld