打開 phpMyAdmin → 選擇 mysql 數據庫 → 編輯 user 表 → 修改 Password 字段,**務必選擇 PASSWORD() 函數** → 執行。
mysqladmin -u root -p password 'newpass'
# 提示輸入舊密碼,回車後生效
將 root 換為其他用戶名可修改自身密碼。**無法清空密碼,且需 mysqladmin 能連接服務器。**
INSERT INTO mysql.user (Host, User, Password) VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
本質是新增用戶,**必須用 PASSWORD() 加密,必須 FLUSH PRIVILEGES**。
REPLACE INTO mysql.user (Host, User, Password) VALUES ('%', 'jeffrey', PASSWORD('biscuit'));
FLUSH PRIVILEGES;
若用戶已存在則替換,否則插入。
SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
**必須用 PASSWORD(),無需 FLUSH PRIVILEGES**,語義最清晰。
GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
**無需 PASSWORD(),無需 FLUSH PRIVILEGES**,隱式創建用戶並設置密碼。
重要提醒: MySQL 的 PASSWORD() **非** Unix 系統加密算法,不可通用。
mysqld-nt.exe / mysqld.exe 進程bin 目錄,啟動跳過權限:mysqld-nt --skip-grant-tablesmysql
USE mysql;
UPDATE user SET Password = PASSWORD('new_pass') WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;
mysqld-nt 進程
# 1. 停止運行中的 MySQL
killall -TERM mysqld
# 2. 跳過權限表啟動
bin/safe_mysqld --skip-grant-tables &
# 3. 無密碼登錄並修改
mysql
USE mysql;
UPDATE user SET Password = PASSWORD('new_pass') WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;
# 4. 重新啟動正常服務
killall -TERM mysqld
# 正常啟動腳本
service mysqld start
# 或
bin/mysqld_safe &
mysql -uroot -p'new_pass'
# 成功登錄即生效