-- 登入後執行
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_strong_password');
FLUSH PRIVILEGES;
注意: MySQL 8.0 棄用 PASSWORD() 函數,請使用 ALTER USER。
systemctl stop mysqld
# 或
service mysqld stop
mysqld_safe --skip-grant-tables --skip-networking &
# --skip-networking 防止遠端連入此無保護實例
mysql -u root
-- 進入 mysql shell 後
USE mysql;
-- 5.7/8.0 語法
UPDATE user SET authentication_string = PASSWORD('new_strong_password') WHERE User = 'root' AND Host = 'localhost';
-- 8.0.4+ 可能需
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
FLUSH PRIVILEGES;
QUIT;
systemctl stop mysqld # 先殺掉 skip-grant-tables 進程
systemctl start mysqld
mysql -u root -p'new_strong_password'
root@% 遠端登入,僅允許 root@localhost 或特定 IP。