因为之前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@’%’
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)