文章浏览 复制本页面地址

linux mysql忘记root密码,重设密码记录

前言: 今天更改数据库的时候发现有几个用户名权限太大,于是删除了,但是删除后在登陆root时候发现登陆不上。
接下来 我说一下如何是操作数据库密码重置的。

一、先停止mysql服务:
/etc/init.d/mysqld stop

二、- 免去权限验证,启动mysql daemon服务:
mysqld_safe --skip-grant-tables &

三、登陆数据库
mysql -u root

四、- 修改root帐号密码:

mysql> use mysql;
mysql> update user set password=password("your new passwd") where user="root";
mysql> flush privileges;
mysql> quit;

五、- 重启mysql

操作完后,发现仍人是登陆不了,奶奶的怎么回事 怎么登陆不了呢?

于是我查询了下数据库的用户表:
mysql> select Host,User,Password from user;
+-----------+--------+-------------------------------------------+
| Host | User | Password |
+-----------+--------+-------------------------------------------+
| localhost | wdcp | *40DEDC559F2CCF63388C34A012218122CC133E3C |
| % | welive | *749A0AD611B4ECB3FEDDA98F942BD11A5E267C33 |
+-----------+--------+-------------------------------------------+
你妹啊,我看了一下,怎么没有root 用户呢,擦删除多了,
好吧现在来添加用户吧。
mysql> insert into user(host,user,password) values('localhost','root',password('root'));
mysql> flush privileges;
mysql> grant all privileges on *.* to root@"localhost";
mysql> flush privileges;
OK 了 重启mysql 吧

到这里我发现,添加的root 是没有授权的。 没有GRANT 权限
只好删除root 用户:

/etc/init.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
mysql> use mysql;
mysql>DELETE FROM user WHERE User="root" and Host="localhost";
mysql>flush privileges;
--------------主要--------------
mysql>GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

然后重启mysql

标签:
上一篇:
下一篇: