Mysql_用户权限
- Mysql_用户权限
- 创建用户并且授权
- 创建用户
- 添加权限
- 撤销权限
- 删除用户
- 修改用户名
- 修改用户密码
- 查询用户权限
- 查看所有用户
- 事务操作
- 查询表格字段属性
- group by的用法
- 复制一个表中的数据到另外一个表
- 多字段分组
- 插入失败问题检查
- create database 数据库名不能有符号
-
- create tabase 的时候values检查符号
'
不能有这符号,否则冲突 - 插入mysql数据乱码的时候,请把数据库字符集调整为GBK即可.
创建用户并且授权
-
grant all privileges on %1.* to '%2'@'%3' identified by '%4'
%1数据库名称,%2用户名,%3host地址,%4密码 -
flush privileges;
刷新权限
创建用户
-
insert into mysql.user(host, user, password) values("%", "test", password("mima"))
host指的是访问主机,user用户名,password密码, 如果host设置成%则任意IP均可访问,或者可以设置成指定IP; -
create user '%1'@'%2' identified by '%3'
%1代表用户名,%2代表host地址,%3代表密码
添加权限
grant 权限 on 数据库.* to '用户名'@'主机地址' identified by "密码"
设置权限 格式
例子:
-
create database testDB
;创建数据库 -
grant all privileges on testDB.* to 'test'@'%' identified by 'mima'
;设置用户拥有数据库testDB的所有权限 -
grant select, update on testDB.* to 'test'@'%' identified by 'mima';
设置用户拥有数据库指定权限 -
grant select, update on *.* to 'test'@'%' identified by "mima";
设置用户拥有所有数据库的指定权限; -
flush privileges;
刷新系统权限即可.
撤销权限
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
- 怎么添加怎么撤销,唯独
to
变成from
删除用户
delete from user where user='用户名' and host = '主机地址';
-
flush privileges;
// 刷新权限
修改用户名
输入update user set user =’新用户名’ where user =’旧用户名’
update user set user = 'xubeibei' where user = '';
修改用户密码
update mysql.user set password = password('新密码') where user = 'test' and host = '%';
flush privileges;
查询用户权限
show grants for '%1'@%'2'
; %1用户名,%2host地址
查看MYSQL数据库中所有用户
查看所有用户
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
事务操作
不能开启事务的原因:mysql的储存引擎选择错了.
存储引擎改为innodb即可 alter table 表名 engine = innodb
然后重新登录msyql查看表格结构即可show table table 表名
详细教程
查询表格字段属性
desc 表名
group by的用法
- 首先起到了分组的效果
用select查询结果,如下图![image_1ceqrcu4ut0b6a3p9015l11kenm.png-16.9kB][3],只查到了一条信息
如果用gruop by 则
![image_1ceqrgksf1mn4leprhaq9a10ok13.png-57kB][4]如图所示group by 起到了分组的效果,分组是怎么分的呢 - 按照time字段,所有相同的time值为一组.而不是查询一条结果
复制一个表中的数据到另外一个表
![image_1cevtjgnmff7aj61ekhbv8182s9.png-17.7kB][5]
多字段分组
插入失败问题检查
- 问题:表格好几个字段设置了NOT NULL.插入的时候检查了好几遍多不知道为什么.
-
用QSqlQuery::lastError().text()
返回错误信息.发现某列无法正确插入信息 - 自己测试了一下,有空值的数据无法插入![image_1cepumqu3kig184d1ltf1jeq2qu1p.png-2.7kB][6]
- 用QString::isNull来测试发现是NULL值
- 发现表格字段属性设置为NOT NULL
- 最终用
alter table 表名 modify 字段名 类型 NULL
设置字段允许NULL
值,再次插入即可