mysql root用户没超级权限或忘记密码

mysql root用户没有超级权限或忘记密码

参考文章:http://www.ixdba.net/article/2f/1293.html

  今天用mysql源码建立了一个数据库,然后通过root用户,空密码登录进行,然后用命令 use mysql 跳转到mysql用户下,然后对user表进行update操作来修改root用户的密码,update完了以后执行了 flush privileges 命令刷新mysql系统表,exit出来后,想用新密码登录进去试试,发现密码没有修改成功,root用户还是空密码,通过show databases命令 也只能看到 以下两个用户

mysql> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| test               |

+——————–+

网上找了半天,发现是root用户已经失去了超级权限,所以只能看到root用户自己的数据库。

mysql数据库找不到,就不能登陆到user表改用户的权限。网上一种解决方法

通过–skip-grant-table启动 可以忽略权限

# ./mysqld start –skip-grant-table

# mysql -uroot -S/home/mysqlData/mysqld.sock

mysql> show databases;

+——————–+

| Database           |

+——————–+

| information_schema |

| mysql              |

| performance_schema |

| test               |

+——————–+

4 rows in set (0.03 sec)

以上步骤就解决了此问题

今天新建了mysql数据库 想修改root用户密码,于是执行了update user set password = ‘111111’ where user=’root’;

执行完成后exit出来,重新用root用户登录就登陆不了了。 只能通过–skip-grant-table 的启动模式来登陆进去。

后来终于发现 user表中的用户密码都是加密过的,要通过update user set password = password(‘111111′) where user=’root’;这样写才能改密码成功

总结出来自己太菜了,同时发现 –skip-grant-table  启动模式对于忘记root密码或者mysql中root用户,直接用# mysql -S/home/mysqlData/mysqld.sock 就能登陆了,不用输入用户名和密码。登陆进去后有超级权限。(-S/home/mysqlData/mysqld.sock  用于一台机器双mysql数据的时候,指定连接哪个数据库的)

mysql root用户没超级权限或忘记密码

相关文章:

你感兴趣的文章:

标签云: