个人工具

“UbuntuHelp:MysqlPasswordReset”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
 
(未显示同一用户的3个中间版本)
第1行: 第1行:
 
{{From|https://help.ubuntu.com/community/MysqlPasswordReset}}
 
{{From|https://help.ubuntu.com/community/MysqlPasswordReset}}
 
{{Languages|UbuntuHelp:MysqlPasswordReset}}
 
{{Languages|UbuntuHelp:MysqlPasswordReset}}
 +
<<Include(Tag/ContentCleanup)>>
 
'''Please do not make any edits to this article.  Its contents are currently under review and being merged with the ''Ubuntu Server Guide''.  To find the Ubuntu Server Guide related to your specific version, please go to:'''
 
'''Please do not make any edits to this article.  Its contents are currently under review and being merged with the ''Ubuntu Server Guide''.  To find the Ubuntu Server Guide related to your specific version, please go to:'''
 
'''https://help.ubuntu.com/ and click on ''Ubuntu Server Guide'''''
 
'''https://help.ubuntu.com/ and click on ''Ubuntu Server Guide'''''
第16行: 第17行:
 
To resolve this problem ,a fast and always working way is the "Password Resetting" .
 
To resolve this problem ,a fast and always working way is the "Password Resetting" .
 
=== How can I reset my MySQL password? ===
 
=== How can I reset my MySQL password? ===
{{https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=IconWarning3.png%7D%7D 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.
+
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=IconWarning3.png 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 :
 
To reset your mysqld password just follow these instructions :
 
* Stop the mysql demon process using this command :
 
* Stop the mysql demon process using this command :
第22行: 第23行:
 
   sudo /etc/init.d/mysql stop
 
   sudo /etc/init.d/mysql stop
 
   </nowiki></pre>
 
   </nowiki></pre>
* Start the mysqld demon process using the --skip-grant-tables --user=root option with this command  
+
* Start the mysqld demon process using the --skip-grant-tables option with this command  
 
<pre><nowiki>
 
<pre><nowiki>
   /usr/bin/mysqld --skip-grant-tables --user=root
+
   sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
 
   </nowiki></pre>
 
   </nowiki></pre>
 +
'''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, <code><nowiki>mysqld --skip-grant-tables</nowiki></code>  did.'''
 
'''In Dapper, /usr/bin/mysgld... did not work. However, <code><nowiki>mysqld --skip-grant-tables</nowiki></code>  did.'''
 
* start the mysql client process using this command  
 
* start the mysql client process using this command  
第51行: 第53行:
 
   WHERE Host = '%' AND User = 'root';
 
   WHERE Host = '%' AND User = 'root';
 
   </nowiki></pre>
 
   </nowiki></pre>
For either method, once have recieved a message indicating a successful query (one or more rows affected), flush privileges:
+
For either method, once have received a message indicating a successful query (one or more rows affected), flush privileges:
 
<pre><nowiki>
 
<pre><nowiki>
 
FLUSH PRIVILEGES;
 
FLUSH PRIVILEGES;
第57行: 第59行:
 
Then stop the <code><nowiki>mysqld</nowiki></code> process and relaunch it with the classical way:
 
Then stop the <code><nowiki>mysqld</nowiki></code> process and relaunch it with the classical way:
 
<pre><nowiki>
 
<pre><nowiki>
 +
sudo /etc/init.d/mysql stop
 
sudo /etc/init.d/mysql start
 
sudo /etc/init.d/mysql start
 
</nowiki></pre>
 
</nowiki></pre>
第68行: 第71行:
 
----
 
----
 
=== Another way, purge ===
 
=== Another way, purge ===
I also had some problems with mysql just not accepting my password. I tried the other way aswell and it just ended up being difficult. I had not been able to use mysql so it was empty anyway. If this is also your case you may opt for the PURGE way. This removes every file related to mysql. Depending on your installation the packages might be diffrent, mysql-server in 6.10 is called mysql-server-5.0 as an example.
+
I also had some problems with mysql just not accepting my password. I tried the other way as well and it just ended up being difficult. I had not been able to use mysql so it was empty anyway. If this is also your case you may opt for the PURGE way. This removes every file related to mysql. Depending on your installation the packages might be diffrent, mysql-server in 6.10 is called mysql-server-5.0 as an example.
{{https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=IconWarning3.png%7D%7D USE THIS AS A LAST RESORT METHOD, YOU WILL LOSE ALL YOUR MYSQL DATA
+
https://help.ubuntu.com/community/IconsPage?action=AttachFile&do=get&target=IconWarning3.png USE THIS AS A LAST RESORT METHOD, YOU WILL LOSE ALL YOUR MYSQL DATA
 
<pre><nowiki>
 
<pre><nowiki>
 
sudo apt-get --purge remove mysql-server mysql-common mysql-client
 
sudo apt-get --purge remove mysql-server mysql-common mysql-client
第86行: 第89行:
 
You should now be logged in as root. Make sure to notedown your password!
 
You should now be logged in as root. Make sure to notedown your password!
 
Thanks to Illuvator for posting this method in the ubuntu forum.
 
Thanks to Illuvator for posting this method in the ubuntu forum.
---
 
[[category:CategoryDocumentation]] [[category:CategoryCleanup]]
 
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2010年5月19日 (三) 23:29的最新版本

<<Include(Tag/ContentCleanup)>> Please do not make any edits to this article. Its contents are currently under review and being merged with the Ubuntu Server Guide. To find the Ubuntu Server Guide related to your specific version, please go to: https://help.ubuntu.com/ and click on Ubuntu Server Guide

Why are you looking at this wiki page?

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?

IconsPage?action=AttachFile&do=get&target=IconWarning3.png 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

When you have completed all this steps ,you can easily access to your mysql server with the password you have set in the step before. An easy way to have a full control of your mysql server is phpmyadmin (www.phpmyadmin.net), software made in php that can give you a web interface that can be very usefull to people that havent got a lot of confidence with bash .To install phpmyadmin on you server you will need to have 4 things:

  • web server apache
  • php
  • mysql server/mysql client installed
  • php_mysql support for apache

All packages can be found browsing synaptic.


Another way, purge

I also had some problems with mysql just not accepting my password. I tried the other way as well and it just ended up being difficult. I had not been able to use mysql so it was empty anyway. If this is also your case you may opt for the PURGE way. This removes every file related to mysql. Depending on your installation the packages might be diffrent, mysql-server in 6.10 is called mysql-server-5.0 as an example. IconsPage?action=AttachFile&do=get&target=IconWarning3.png USE THIS AS A LAST RESORT METHOD, YOU WILL LOSE ALL YOUR MYSQL DATA

sudo apt-get --purge remove mysql-server mysql-common mysql-client
sudo apt-get install mysql-server mysql-common mysql-client

In the next step be sure to chance the your-new-password with the password you want!

mysqladmin -u root password your-new-password
sudo /etc/init.d/mysql restart
mysql -u root -p

You should now be logged in as root. Make sure to notedown your password! Thanks to Illuvator for posting this method in the ubuntu forum.