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

mysql root无法修改用户权限,root无法 *** 作数据库,第1张

因为之前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账号,就可以用了

1、创建新用户

通过root用户登录之后创建

>>grant all privileges on *.* to testuser@localhost identified by "123456" //创建新用户,用户名为testuser,密码为123456 ;

>>grant all privileges on *.* to testuser@localhost identified by "123456" //设置用户testuser,可以在本地访问mysql

>>grant all privileges on *.* to testuser@"%" identified by "123456"  //设置用户testuser,可以在远程访问mysql

>>flush privileges //mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效

2、设置用户访问数据库权限

>>grant all privileges on test_db.* to testuser@localhost identified by "123456" //设置用户testuser,只能访问数据库test_db,其他数据库均不能访问 ;

>>grant all privileges on *.* to testuser@localhost identified by "123456" //设置用户testuser,可以访问mysql上的所有数据库 ;

>>grant all privileges on test_db.user_infor to testuser@localhost identified by "123456" //设置用户testuser,只能访问数据库test_db的表user_infor,数据库中的其他表均不能访问 ;

3、设置用户 *** 作权限

>>grant all privileges on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION //设置用户testuser,拥有所有的 *** 作权限,也就是管理员 ;

>>grant select on *.* to testuser@localhost identified by "123456" WITH GRANT OPTION //设置用户testuser,只拥有【查询】 *** 作权限 ;

>>grant select,insert on *.* to testuser@localhost identified by "123456" //设置用户testuser,只拥有【查询\插入】 *** 作权限 ;

>>grant select,insert,update,delete on *.* to testuser@localhost identified by "123456" //设置用户testuser,只拥有【查询\插入】 *** 作权限 ;

>>REVOKE select,insert ON what FROM testuser//取消用户testuser的【查询\插入】 *** 作权限 ;

mysql更改用户权限

This entry was posted by admin Monday, 26 April, 2010

1.“grant all on *.* to root@’%’ identified by ‘yourpassword’”——这个还可以顺带设置密码。

2.“flush privileges”——刷新一下,让权限生效。

mysql的一些其他的管理,可以用mysqladmin命令。可以用来设置密码什么的。

grant方面的详细信息可以看我下面的转载:

本文实例,运行于 MySQL 5.0 及以上版本。

MySQL 赋予用户权限命令的简单格式可概括为:

grant 权限 on 数据库对象 to 用户

一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。

grant select on testdb.* to common_user@’%’

grant insert on testdb.* to common_user@’%’

grant update on testdb.* to common_user@’%’

grant delete on testdb.* to common_user@’%’

或者,用一条 MySQL 命令来替代:

grant select, insert, update, delete on testdb.* to common_user@’%’


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8572823.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存