mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database


新安裝的mysql密碼是空的。

 

./mysql -u root -p
use mysql
SELECT `Host`,`User` FROM user;
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;

 

方法一:
1.關閉mysql
   # service mysqld stop
2.屏蔽權限
   # mysqld_safe --skip-grant-table
   屏幕出現: Starting demo from .....
3.新開起一個終端輸入
   # mysql -u root mysql
   mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
   mysql> FLUSH PRIVILEGES;//記得要這句話,否則如果關閉先前的終端,又會出現原來的錯誤
   mysql> \q

 

 
方法
mysql> use mysql
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'mysql'
mysql> exit
Bye
[root@testtest ~]# service mysqld stop 
Stopping mysqld:                      [ OK ]
[root@testtest ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
 
[root@testtest ~]# mysql -u root -p -hlocalhost
Enter password: 
 
mysql> use mysql
 
mysql> SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;
 
mysql> UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
 
mysql> FLUSH PRIVILEGES;
 
mysql> GRANT ALL ON *.* TO 'root'@'localhost';
 
mysql> GRANT ALL ON *.* TO 'root'@'cn.cn.cn.cn';
 
mysql> GRANT ALL ON *.* TO 'root'@'245.245.245.245';
 
mysql> GRANT ALL ON *.* TO 'root'@'127.0.0.1';
 
mysql> FLUSH PRIVILEGES;
 
 
mysql> quit
Bye
[root@testtest ~]# service mysqld start 

 

 

方法三:

在my.ini的[mysqld]字段加入: 
skip- grant -tables
?
重啟mysql服務,這時的mysql不需要密碼即可登錄數據庫
然后進入mysql 
?
mysql>use mysql;
mysql> update user set password = password ( '新密碼' ) WHERE User = 'root' ;
mysql>flush privileges ;
運行之后最后去掉my.ini中的skip-grant-tables,重啟mysqld即可。
 
 
 
 
mysql> use mysql
ERROR 1044 (42000): Access denied for user 'root' @ 'localhost' to database 'mysql'
mysql> exit
Bye
[root@testtest ~]# service mysqld stop
Stopping mysqld:                      [ OK ]
[root@testtest ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
 
[root@testtest ~]# mysql -u root -p -hlocalhost
Enter password :
 
mysql> use mysql
 
mysql> SELECT host, user , password ,Grant_priv,Super_priv FROM mysql. user ;
 
mysql> UPDATE mysql. user SET Grant_priv= 'Y' , Super_priv= 'Y' WHERE User = 'root' ;
 
mysql> FLUSH PRIVILEGES ;
 
mysql> GRANT ALL ON *.* TO 'root' @ 'localhost' ;
 
mysql> GRANT ALL ON *.* TO 'root' @ 'cn.cn.cn.cn' ;
 
mysql> GRANT ALL ON *.* TO 'root' @ '245.245.245.245' ;
 
mysql> GRANT ALL ON *.* TO 'root' @ '127.0.0.1' ;
 
mysql> FLUSH PRIVILEGES ;
 
 
mysql> quit
Bye
[root@testtest ~]# service mysqld start


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM