MySQL 5.7+ 版本,Linux/macOS/Windows(路徑調整),拥有伺服器 root/Administrator 權限。
vim /etc/my.cnf
# 在 [mysqld] 區段加入
skip-grant-tables
systemctl restart mysqld
# 或 service mysqld restart
mysql -u root -p
# 密碼直接 Enter
USE mysql;
UPDATE user SET authentication_string = PASSWORD('新密碼') WHERE User = 'root';
FLUSH PRIVILEGES;
QUIT;
vim /etc/my.cnf
# 刪除或註解 skip-grant-tables
systemctl restart mysqld
mysql -u root -p
# 輸入新密碼
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '最終密碼';
若報 Your password does not satisfy the current policy requirements:
SET GLOBAL validate_password_policy = 0; -- 低強度策略
SET GLOBAL validate_password_length = 4; -- 最小長度
SET GLOBAL validate_password_mixed_case_count = 0;
SET GLOBAL validate_password_number_count = 0;
SET GLOBAL validate_password_special_char_count = 0;
-- 然後重新執行 ALTER USER
或直接設定符合預設策略的複雜密碼(大小寫+數字+特殊字元+長度≥8)。
SHOW VARIABLES LIKE '%character%';
建議配置 /etc/my.cnf:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
[client]
default-character-set = utf8mb4
my.ini(通常在安裝目錄或 C:\ProgramData\MySQL\MySQL Server 5.7\)net stop mysql / net start mysqlmysqld --initialize-insecure(生成臨時密碼在 .err 日誌)skip-grant-tablesvalidate_password 元件並設定適當策略