MySQL是一個流行的開源關系型數據庫管理系統,在使用MySQL的過程中,我們需要輸入密碼來獲取對數據庫的訪問權限。當密碼輸入錯誤時,MySQL會給出相應的提示信息。
mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
出現這個錯誤信息意味著我們的密碼錯誤。那么當我們忘記了MySQL密碼時,該怎么辦呢?下面是幾種解決方法。
方法一:使用--skip-grant-tables選項
sudo systemctl stop mysql sudo mysqld_safe --skip-grant-tables & mysql -u root use mysql; update user set authentication_string=password('newpassword') where user='root'; FLUSH PRIVILEGES;
這種方法的效果是可以重置密碼,但需要安裝一個新的MySQL存儲引擎或重新編譯老的版本,并要注意MySQL的版本與操作系統的對應性,否則會出現問題。
方法二:使用二進制文件方式
/usr/local/mysql/bin/mysqld_safe --init-file=/tmp/pwd.sql &
方法三:使用SET PASSWORD方式
mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword'); mysql>FLUSH PRIVILEGES;
如果我們沒有特別要求,使用這個方法適用于MySQL 5.7及以上版本。