Posted on 2013-09-09 14:34
H2O 閱讀(1065)
評論(0) 編輯 收藏
From http://www.dn59.com/linux/server/2013/0120/mysql-ERROR-1045-28000.html
在ubuntu server 12.04中,安裝mysql后,使用命令登錄mysql居然報錯了,Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE),這個錯誤搞得很郁悶,仔細分析之后,知道這個報錯和密碼有關,可能是密碼在配置mysql的時候異常,所以導致我們沒有正確的密碼,知道問題后,立即想到解決辦法了,那就是重新設置一個密碼,方法如下
1.先關閉mysql并設置密碼
- #sudo /etc/init.d/mysql stop
- #sudo mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
- #sudo mysql -u root mysql
- mysql> UPDATE user SET Password=PASSWORD('pas') where USER='root';
- mysql> FLUSH PRIVILEGES;
- mysql> quit
允許mysql遠程訪問,可以使用以下三種方式:
a、改表。
mysql -u root –p
mysql>use mysql;
mysql> update user set host = '%' where user = 'root' ;
mysql> select host, user from user ;
|
有時候更悲?。核杏脩舨恍⌒谋粍h了,包括root也被刪了腫么辦?
mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root(新建用戶的用戶名)
insert into mysql.user (host, user, password) values ('%', '新建用戶的用戶名', password('密碼'));grant all on *.* to 'root'@'%'; 和上面一樣也要flush 刷新權限b、授權。
例如,你想root使用123456從任何主機連接到mysql服務器。
1
|
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' IDENTIFIED BY '123456' WITH GRANT OPTION ;
|
如果你想允許用戶jack從ip為10.10.50.127的主機連接到mysql服務器,并使用654321作為密碼
1
2
|
mysql> GRANT ALL PRIVILEGES ON *.* TO 'jack' @’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION ;
mysql>FLUSH RIVILEGES
|
c:在安裝mysql的機器上運行:
1
2
3
4
5
6
7
8
|
//進入MySQL服務器
d:\mysql\bin\>mysql -h localhost -u root
//賦予任何主機訪問數據的權限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root' @ '%' WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
//退出MySQL服務器
mysql>EXIT
|
2.重啟mysql并嘗試登錄
- #sudo /etc/init.d/mysql restart
- #sudo mysql -uroot -p
- Enter password:
- #輸入密碼,出現下面這個就表示登錄正常了
- mysql>
Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE)這個錯誤在使用phpmyadmin登錄的時候只提示(28000),同時phpmyadmin也會提示密碼出錯,按以上方法設置之后就可以用新密碼登錄phpmyadmin了