mysql root无法修改用户权限,root无法操作数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql root无法修改用户权限,root无法操作数据库相关的知识,希望对你有一定的参考价值。

参考技术A

因为之前root安全设置问题,把root的select_priv, update_priv, insert_priv, delete_priv权限都给下掉了。

现在要grant 修改非root用户权限的时候发现修改不了,才发现是root权限的问题。

修改mysql配置文件

mysqld新增skip-grant-tables,wq保存退出

重启mysql服务

进入mysql

查看mysql用户表信息,发现root没有CURD的权限

发现问题直接update,修改它,如果其它权限没了,也可以修改

修改my.cnf,注释掉skip-grant-tables

重启mysql服务

登录root账号,就可以用了

其实和服务器的修改方法一样
查看my.cnf挂载情况,如果已经知道了my.cnf的挂载位置,就不用执行这一步。
找到my.cnf配置文件,这边的挂载到宿主机的配置在/opt/mysql/config/my.cnf
注意 5d15960f2861 是我自己的 CONTAINER ID

如果my.cnf没有挂载出来,那就进容器里面改my.cnf了,注意 5d15960f2861 是我自己的 CONTAINER ID

my.cnf 中的mysqld新增skip-grant-tables,wq保存退出

重启docker mysql服务

进入docker mysql容器的mysql服务

查看mysql用户表信息,发现root没有CURD的权限

发现问题直接update,修改它,如果其它权限没了,也可以修改

修改my.cnf,注释掉skip-grant-tables

重启docker mysql服务

登录root账号,就可以用了

mysql修改root密码

mysql8.0.16

登录时出现ERROR 1130 (HY000): Host ‘localhost‘ is not allowed to connect to this MySQL server
出现此错误时,是root用户权限问题,客户端无法访问服务器
判断本次出现问题原因为:安装mysql后修改密码,修改密码使用了明文密码导致问题出现
update mysql.user set authentication_string=‘password‘ where user=‘root‘;
使用此方法修改密码就会出现此问题,正确修改密码方式如下
1、客户端无法登录mysql服务器,需要越权登录
mysqld --console --skip-grant-tables --shared-memory
2、越权可以直接通过mysql命令直接登录,然后进入user表将root用户密码修改为空,可使用update命令
3、退出mysql关闭1中打开的console,重启mysql,重新修改密码
alter user ‘root‘@‘localhost‘ identified by ‘password‘//此方法修改后的密码为加密的
网上有些修改密码方式为:
update mysql.user set authentication_string=password(‘password‘) where user=‘root‘;
尝试后无效,报错,猜测是password方法已经不被使用了

以上是关于mysql root无法修改用户权限,root无法操作数据库的主要内容,如果未能解决你的问题,请参考以下文章

linux 下解决mysql root 权限无法远程连接问题

mysql误删root

centos 使用root登陆 却无法修改文件属性

mysql修改root密码

mysql的root的权限被控制无法授权

Mysql数据库误删root用户极速解决办法