1.先以root用戶登錄系統;
2.關閉MYSQL服務或進程:service mysqld stop / killall mysqld;
3.特權啟動MYSQL: /usr/local/mysql/bin/mysqld_safe --skip-grant-tables & or mysqld_safe --skip-grant-tables --skip-networking & (注:參數--skip-grant-tables為跳過授權表;--skip-networking為不監聽TCP/IP連接);
4.然後可以不需要密碼進入MySQL:mysql -u root -p(要求輸入密碼時直接回車即可);
mysql>use mysql;
mysql>update user set password=password('new pw') where user='root' (注:'new pw' 就是你的新密碼,其它照抄;
另一種寫法:update mysql.user set password=password('new pw') where user='root';
5.更新下:
mysql>flush privileges;
mysql>quit;
6.結束剛啟動過的MYSQL進程:killall mysqld or killall -9 mysqld.
7.正常啟動MYSQL: service mysql start
8.用'new pw'登入:mysql -u root -p.
OK......
>>同時也可以這樣做:
首先,修改MySQL的登錄設置:
# vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存並且退出vi。
然後,重新啟動mysqld,進去修改密碼,同上述方法;
最後,將MySQL的登錄設置修改回來:
# vi /etc/my.cnf
將剛才在[mysqld]的段中加上的skip-grant-tables刪除
保存並且退出vi。
再次登入MYSQL,一樣OK......
本文出自 “colive” 博客