linux下 mysql 忘记root用户密码解决办法

 

一、以系统的root用户(什么,你的系统的root用户密码也忘了。那只好看我另外一篇linux下忘记root用户的解决办法了先解决这个问题)登陆系统,进入终端
[root@localhost /]#


二、杀掉mysql进程
方法1、[root@localhost /]#killall mysqld
方法2、[root@localhost /]#ps -aux //查看所有进程,找到mysql进程的pid
然后

[root@localhost /]#kill pid //pid是mysql的进程号


三、用–skip-grant-tables参数启动mysqld
[root@localhost /]#/usr/local/mysql/bin/mysqld_safe –skip-grant-tables&
// 其中/usr…./bin是我的mysql安装目录
[root@localhost /]#/usr/local/mysql/bin/mysql //进入mysql
mysql> use mysql //切换到mysql database
mysql> UPDATE user SET password=password(’123456′) WHERE user=’root’;
//将root密码该为123456了


四、注意事项
The full command to load MySQL like this is:
mysqld_safe –skip-grant-tables –autoclose
(Editor’s Note: Our technical reviewer found that he had to launch the mysqld_safe command
without the ‘–autoclose’ flag, otherwise the daemon never started.)
这是国外网站说的,我没用autoclosa也成功了
但是我在执行/usr/local/mysql/bin/mysqld_safe –skip-grant-tables&即出现错误提示:
./mysqld_safe
starting mysqld daemon with databases from /usr/local/var
STOPPING server from pid file /usr/local/var/localhost.localdomain.pid
mysqld ended
然后进入/usr/local/var/
vi ./localhost.localdomain.err 内容如下:
050410 04:02:59 mysqld started
050410 4:03:00 InnoDB:Operating system error number 13 in a file operation.
InnoDB:The error means mysqld does not have the access rights to
InnoDB:the directory.
InnoDB:File name ./ibdata1
InnoDB:File operation call:’create’.
InnoDB:Cannot continue operation.
050410 04:03:00 mysqld ended
怀疑是./var目录的访问权限,故如下操作:
chmod 777 ./var
然后重新执行后台,仍出以上错误,但在localhost.localdomain.err文件中的错误信息已改为找不到一个叫做
help.*的文件了(这个文件名我记不得了)
这是因为我的mysql安装目录的读写权限是这样造成的
mysql安装目录属于用户root,但是群组是mysql的
把群组也改为root即可。

- THE END -
版权声明:
转载原创文章请注明,文章出处://kinggoo.com
原文地址:https://kinggoo.com/mysql-passwdlost.htm
发表评论?

2 条评论。

回复给 Eileen ¬
取消回复


此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据