linux忘記mysql密碼處理方法:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> update user set password=password('newpassword') where user='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
enter password: <輸入新設的密碼newpassword>
mysql>
修改的用戶都以root為列。
一、擁有原來的myql的root的密碼;
方法一:
在mysql系統外,使用mysqladmin
# mysqladmin -u root -p password "test123"
Enter password: 【輸入原來的密碼】
方法二:
通過登錄mysql系統,
# mysql -uroot -p
Enter password: 【輸入原來的密碼】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit;
方法三:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>
mysql> grant all on *.* to root@'%' identified by '密碼';
方法四:
直接使用/etc/mysql/debian.cnf文件中[client]節提供的用戶名和密碼:
# mysql -udebian-sys-maint -p
Enter password: <輸入[client]節的密碼>
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password: <輸入新設的密碼newpassword>
mysql>
二、忘記原來的myql的root的密碼;
首先,你必須要有操作系統的root權限了。要是連系統的root權限都沒有的話,先考慮root系統再走下面的步驟。
類似於安全模式登錄系統,有人建議說是pkill mysql,但是我不建議哈。因為當你執行了這個命令後,會導致這樣的狀況:
/etc/init.d/mysqld status
mysqld dead but subsys locked
這樣即使你是在安全模式下啟動mysql都未必會有用的,所以一般是這樣/etc/init.d/mysqld stop,如果你不幸先用了pkill,那麼就start一下再stop咯。
# mysqld_safe --skip-grant-tables &
&,表示在後台運行,不再後台運行的話,就再打開一個終端咯。
# mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user='root';
mysql> flush privileges;
mysql> exit;
##本來mysql是不分大小寫的,但是這個是修改的mysql中的mysql數據庫的具體的值,要注意到。