mysqladmin -u root -p'old_pass' password 'new_pass'
-- MySQL 5.7.6+ / 8.0 推薦
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
ALTER USER 'root'@'%' IDENTIFIED BY 'new_pass';
-- 5.7.6 前 / 通用
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pass');
SET PASSWORD FOR 'root'@'%' = PASSWORD('new_pass');
-- 或直接更新 user 表(需 FLUSH PRIVILEGES)
UPDATE mysql.user SET authentication_string = PASSWORD('new_pass')
WHERE User = 'root';
FLUSH PRIVILEGES;
root @ localhost 和 root @ %config.inc.php 的 $cfg['Servers'][$i]['password'] 才能繼續用 phpMyAdmin 登入/etc/my.cnf,[mysqld] 下加入 skip-grant-tablessystemctl restart mysqldmysql -u rootUSE mysql;
-- 5.7.6+
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
-- 5.7.6 前
UPDATE user SET authentication_string = PASSWORD('new_pass') WHERE User='root';
FLUSH PRIVILEGES;
skip-grant-tables,重啟 MySQLnet stop MySQL80)C:\mysql_init.txt:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysqld --init-file=C:\mysql_init.txt --console
Ctrl+C 停止mysql_init.txt,正常啟動服務:net start MySQL80MySQL 8.0 預設使用 caching_sha2_password,舊版驅動可能不支援。若應用連線失敗:
-- 將 root 改為 mysql_native_password
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'new_pass';
FLUSH PRIVILEGES;
# 新密碼登入測試
mysql -u root -p'new_pass' -e "SELECT USER(), CURRENT_USER();"
# 查看加密插件
SELECT User, Host, plugin FROM mysql.user WHERE User='root';
root@%,僅允許 root@localhost 或 root@127.0.0.1