-- 1. 登入
mysql -uroot -p
-- 2. 修改 (MySQL 5.7+)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';
-- 或 8.0+ 指定插件
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewStrongPass123!';
-- 3. 刷新權限
FLUSH PRIVILEGES;
mysqladmin -uroot -p'old_pass' password 'NewStrongPass123!'
USE mysql;
UPDATE user SET authentication_string = PASSWORD('NewStrongPass123!') WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
注意:5.7+ password 欄位改為 authentication_string,且 PASSWORD() 函數 8.0 已移除,建議用 ALTER USER。
systemctl stop mysqldmysqld_safe --skip-grant-tables --skip-networking &--skip-networking 防止外部連入,安全第一)mysql -urootFLUSH PRIVILEGES; -- 必須先執行,因 skip-grant-tables 下 grant 表不可寫ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPass123!';mysqladmin -uroot -p'NewStrongPass123!' shutdownsystemctl start mysqldservices.msc) 停止 MySQL 服務。bin:cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"mysqld --console --skip-grant-tables --skip-networkingmysql -urootFLUSH PRIVILEGES; ALTER USER ...。Ctrl+C 關閉第一個視窗,服務管理器重新啟動 MySQL 服務。# my.cnf / my.ini [mysqld] 區段新增
skip-grant-tables
# 重啟服務 → 免密登入改密 → 刪除該行 → 再次重啟
mysql -uroot -p'NewStrongPass123!' -e "SELECT 1;"DROP USER ''@'localhost'; DROP USER ''@'%';DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1'); FLUSH PRIVILEGES;mysql_secure_installation (設定密碼策略、移除 test 庫等)。ALTER USER。掌握標準修改流程與緊急重置藥方,配合安全加固清單,讓 MySQL 賬號管理既靈活又安全。