Access denied
时间:2010-06-04 来源:thrinity
Are you looking at this page because you cannot access the mysql server installed on your pc/server when you were trying to see if it works well? Or do you receive error messages like the following? :
ERROR 1045: Access denied for user: 'root@localhost' (Using
password: NO)
or
ERROR 1045: Access denied for user: 'root@localhost' (Using
password: YES)
To resolve this problem ,a fast and always working way is the "Password Resetting" .
How can I reset my MySQL password?
Following this procedure, you will disable access control on the MySQL server. All connexions will have a root access. It is a good thing to unplug your server from the network or at least disable remote access.
To reset your mysqld password just follow these instructions :
- Stop the mysql demon process using this command :
-
sudo /etc/init.d/mysql stop
-
- Start the mysqld demon process using the --skip-grant-tables option with this command
-
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
-
Because you are not checking user privs at this point, it's safest to disable networking. In Dapper, /usr/bin/mysgld... did not work. However, mysqld --skip-grant-tables did.
- start the mysql client process using this command
-
mysql -u root
-
- from the mysql prompt execute this command to reset/update your password
-
SET PASSWORD FOR root@'localhost' = PASSWORD('password');
-
- If you have a mysql root account that can connect from everywhere, you should also do:
-
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
-
- Alternate Method:
-
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = 'localhost' AND User = 'root';
-
- And if you have a root account that can access from everywhere:
-
USE mysql
UPDATE user SET Password = PASSWORD('newpwd')
WHERE Host = '%' AND User = 'root';
-
For either method, once have received a message indicating a successful query (one or more rows affected), flush privileges:
FLUSH PRIVILEGES;
Then stop the mysqld process and relaunch it with the classical way:
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start