前言
为了数据安全,需要对mysql创建不同的账号,分发到相关人员手中,以账号来限制数据的操作权限。
创建账号
首先登陆mysql,此处省略登陆步骤
##创建账号命令
create user 'writeandread'@'%' identified by '123456';
##为账号开启远程访问权限
grant all privileges on dbname.* to 'writeandread'@'%';
##刷新权限
flush privileges;
经过以上三个步骤即可开通一个账号。
各类命令介绍
- 创建账号语句
create user 'writeandread'@'%' identified by '123456';
其中的%
表示所有情况都能访问
如替换为localhost
表示只有本地才能访问
如替换为具体的ip则表示只有此ip才能访问,多个ip使用,
连接 - 开启远程访问语句
grant all privileges on dbname.* to 'writeandread'@'%' ;
a.其中'writeandread'@'%'
与创建账号的命令一致,否则语句无法执行
b.all privileges
的意思是赋予所有权限,可替换为create,alter,drop,select,insert,update,delete
可根据自身需要对权限做增删,使用,
连接即可 - 查看系统当前账号
select user,host from mysql.user;
此命令罗列所有账户名&可访问的地址,具体含义见创建账号 - 删除账号
drop user writeandread@'%'
删除账号是同样要保持账户名与访问权限保持一致,否则无法删除 - 查看账号权限
show grants for backupuser@'112.112.1.1,112.112.1.2';
同样要保持账户名与访问权限保持一致,否则语句报错
可能遇到的问题
- 如果数据库名中有
-
执行语句会失败,将数据库名改为*
直接模糊匹配
强制修改root密码
vim /etc/my.conf
找到[mysqld],在它的后面任意下一行添加如下代码
skip-grant-tables
重启mysql service mysqld restart
进入后台 执行命令 mysql
执行修改语句 update user set authentication_string=password('新密码') where user='root';
退出,将my.conf中的 skip-grant-tables
删除,再重启mysql
网友评论