適用的情況:1 忘記密碼
2 error 1045:Access denied for user 'root'@'localhost' (using password: Yes/No)
3 沒有權(quán)限Access denied for user ''@'localhost' to database
步驟:
1 停止mysql進(jìn)程;
windows:控制面板-管理工具-服務(wù)-mysql停止;
linux:mysql stop;
2 windows: mysqld --skip-grant-tables
linux:mysqld_safe --skip-grant-tables
3 重新打開一個命令行窗口,輸入
mysql;進(jìn)入mysql命令行
use mysql;
update user set password=password("new_pass") where user="root";修改密碼
flush privileges; 刷新權(quán)限
如果是MySQL 5.1 ,注意是 update user set password=old_password("new_pass") where user = "root"
select length(password) from user where user='root';
不是41就對了
4 殺掉mysqld進(jìn)程[任務(wù)管理器],重新啟動mysql。
windows:控制面板-管理工具-服務(wù)-mysql啟動;
linux:mysql start;
我的系統(tǒng)是ubuntu6.06,最近新裝好的mysql在進(jìn)入mysql工具時,總是有錯誤提示:
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
使用網(wǎng)上介紹的方法修改root用戶的密碼:
# mysqladmin -uroot -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
現(xiàn)在終于被我找到了解決方法,如下(請先測試方法三,謝謝!):
方法一:
# /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: <輸入新設(shè)的密碼newpassword>
mysql>
方法二:
直接使用/etc/mysql/debian.cnf文件中[client]節(jié)提供的用戶名和密碼:
# mysql -udebian-sys-maint -p
Enter password: <輸入[client]節(jié)的密碼>
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# mysql -uroot -p
Enter password: <輸入新設(shè)的密碼newpassword>
mysql>
方法三:
這種方法我沒有進(jìn)行過測試,因?yàn)槲业膔oot用戶默認(rèn)密碼已經(jīng)被我修改過了,那位有空測試一下,把結(jié)果告訴我,謝謝!!
# mysql -uroot -p
Enter password: <輸入/etc/mysql/debian.cnf文件中[client]節(jié)提供的密碼>
至此,困惑多時的問題解決了!
posted on 2010-04-08 15:56
北國狼人的BloG 閱讀(251)
評論(0) 編輯 收藏