DCL数据库控制语句
权限级别
Global level 所有库,所有表的权限。
Database level 某个数据库中的所有表的权限。
Table level 库中的某个表的权限
Column level 表中的某个字段,的权限。
mysql用户管理
创建用户
CREATE USER user1@'localhost' IDENTIFIED BY 'QianFeng@123456';
用户名称 主机名 用户密码
验证方法
select * from mysql.user\G;
删除用户
DROP USER 'user1'@'localhost';
验证方法
select user from mysql.user;
修改用户密码
未进入数据库前
# mysqladmin -uroot -p'123' password 'new_password'
用户名 旧密码 新密码
进入数据库后
SET PASSWORD=password('new_password');
刷新权限
FLUSH PRIVILEGES;
mysql权限语法格式
grant 权限列表 on 库名.表名 to '用户名'@'客户端主机' [identified by '密码' with option参数];
权限列表:all: 所有权限(不包括授权权限)
select,update 查询更新
数据库.表名:*.*
web.*
web.stu_info
with_option参数 GRANT OPTION授权选项
mysql权限示例
授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
回收权限
SHOW GRANTS\G //查看自己的权限
SHOW GRANTS FOR admin3@'%'\G //查看别人的权限
------------------------------------------------------------
REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
REVOKE ALL PRIVILEGES ON bbs.* FROM admin3@’%’;
日志管理日志分类图
1 错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log
2 通用查询日志:所有的查询都记下来。
3 二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。
4 中继日志:读取主服务器的binlog,在本地回放。保持一致。
5 slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。
6 DDL log: 定义语句的日志。
Error Log
vim /etc/my.cnf //进入主配置文件,观察日志是否启动。
log-error=/var/log/mysqld.log //该字段,标记是否启动日志,以及日志位置。
如果哪天mysql服务起不来了,请来这个日志文件看看。
Binary Log
默认没有开启二进制日志
启动二进制日志
# vim /etc/my.cnf
log_bin //添加该字段。指启动二进制日志
server-id=2 //群集问题,必须指定该主机的序号。数字随意
# systemctl restart mysqld //重启数据库
测试
查看二进制日志文件当前状态
ls /var/lib/mysql/*bin* //查询二进制文件生成完成。
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001 //查看二进制文件日志
# at 123 //找到一个记录位置
以下为日志记录
Slow Query Log
默认慢查询日志未开启
开启慢查询日志功能
vim /etc/my.cnf
slow_query_log=1 //启动慢查询日志,这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
long_query_time=3 //当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
#systemctl restart mysqld
查看慢查询日志文件
#ll /var/lib/mysql/*slow*
模拟慢查询
mysql>SELECT BENCHMARK(500000000,2*3);
#tail /var/lib/mysql/localhost-slow.log //验证慢查询日志