mysql> SELECT USER(); -- 確認當前連線身份
mysql> SET PASSWORD = PASSWORD('newpass123');
mysql> FLUSH PRIVILEGES;
mysql> USE mysql;
mysql> UPDATE user SET authentication_string = PASSWORD('newpass123') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
注意:MySQL 5.7+ 密碼欄位為 authentication_string,5.6 為 password。
# 格式:mysqladmin -u root -p'oldpass' password 'newpass' mysqladmin -u root -p'123456' password 'Qwe123' # 驗證 mysql -u root -p'Qwe123' -e 'SHOW DATABASES;'
service mysql stop # 或 /etc/init.d/mysql stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & # --skip-grant-tables:不載入權限表,任意密碼可登入 # --skip-networking:僅允許本地 socket 連線,安全起見
mysql -u root mysql
mysql> UPDATE user SET authentication_string = PASSWORD('Qwe123') WHERE User = 'root';
Query OK, 4 rows affected
mysql> FLUSH PRIVILEGES;
mysql> EXIT
service mysql restart # 或殺掉 skip-grant-tables 進程後 service mysql start
mysql -u root -p'Qwe123' -e 'SELECT VERSION();'