法一:mysqladmin(命令行,無需登入)
# 首次設密(root 無密)
mysqladmin -uroot password 'newpwd'
# 已有密碼時改密
mysqladmin -uroot -p'oldpwd' password 'newpwd'
# 回車後提示輸入舊密碼,輸入即可
法二:SQL 更新 mysql.user 表(需登入)
mysql -uroot -p
USE mysql;
-- 5.7
UPDATE user SET authentication_string=PASSWORD('newpwd') WHERE User='root';
-- 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpwd';
FLUSH PRIVILEGES;
清空密碼(免密登入)
mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string='' WHERE User='root';
FLUSH PRIVILEGES;
-- 重啟服務生效
systemctl restart mysqld
安全提醒
- 免密僅限本地開發/測試環境,生產嚴禁。
- 修改後務必
FLUSH PRIVILEGES; 或重啟服務刷新權限緩存。
- MySQL 8.0
PASSWORD() 已移除,統一用 ALTER USER。