Total Pageviews

Saturday, 25 May 2013

重置mysql 的root密码

工作中需要用到mysql服务器,但是忘记了root用户的密码。如何重置呢?

在网上搜索,觉得其中一个方法比较适合.
1. 停止mysqld; 
/etc/init.d/mysql stop
(您可能有其它的方法,总之停止mysqld的运行就可以了)
2. 用以下命令启动MySQL,以不检查权限的方式启动; 
mysqld --skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL; 
mysql -u root
4. 修改root用户的密码; 
mysql> update mysql.user set password=PASSWORD('newpassword') where User='root'; 
mysql> flush privileges; 
mysql> quit 
重新启动MySQL
/etc/init.d/mysql restart
可是在执行这条命令时mysqld –skip-grant-tables & 却产生了如下的错误
[root@localhost1 ~]# 111117 13:23:06 [Warning] '--skip-locking' is deprecated and will be removed in a future release. Please use '--skip-external-locking' instead.
111117 13:23:06 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!

111117 13:23:06 [ERROR] Aborting

111117 13:23:06 [Note] mysqld: Shutdown complete
又在网上搜索了一下,发现如下的说明:
解决办法:在/etc/my.conf中的mysqld加入
user=mysql
也可以试试用/usr/bin/mysqld_safe –user=mysql & 来启动
最终:
使用如下的语句进入了mysql
/usr/bin/mysqld_safe –user=mysql –skip-grant-tables   &
然后就可以修改root的密码了。