学习MySQL的第四天(DCL,日志)

一、DCL

1.1简介

数据控制语言(DCL:Data Control Language)是用来设置或者更改数据库用户或角色权限的语句,这些语句包括GRANT,DENY,REVOKE等语句

1.2创建用户

创建一个用户可以远程登陆主机管理数据库,
语法:CREATE USER 用户名@‘目标服务器IP’ IDENTIFIED BY ’ 登录密码 ’ ;
例如:create user [email protected]‘111.111.111.111’ identified by ‘123’; 为IP为111.111.111.111的服务器 创建一个用户名为zhu的用户,可以用这个用户登录数据库,使用密码为 123
举例
1.创建用户
学习MySQL的第四天(DCL,日志)
2.登录验证
我们到指定服务器登录mysql
学习MySQL的第四天(DCL,日志)

1.3删除用户

语法:DROP USER ‘用户名’@’ 目标服务器IP ’ ;
学习MySQL的第四天(DCL,日志)

1.4修改root用户密码

root修改自己的密码
1.语法: mysqladmin -uroot -p’旧密码’ password ‘新密码’ ; 在数据库外修改
学习MySQL的第四天(DCL,日志)
2.语法:SET PASSWORD=password(‘新密码’);. 在数据库内修改
学习MySQL的第四天(DCL,日志)
3.root 用户忘记密码
首先进入配置文件里 vim /etc/my.cnf 设置免密登录 加入 skip-grant-tables
学习MySQL的第四天(DCL,日志)
然后重启数据库 systemctl restart mysqld
免密登录数据库后 输入 UPDATE mysql.user SET authentication_string=password(‘新密码’) where user=‘root’ and host=‘localhost’;
学习MySQL的第四天(DCL,日志)
修改完后 刷新一下 FLUSH PRIVILEGES;

最后不要忘了把配置文件里的免密登录给除去!!!!

1.5赋予权限

1.首先我们创建一个用户,
学习MySQL的第四天(DCL,日志)

我们给他授予权限
语法 grant 权限列表 on 库名.表名 to ‘用户名’@‘目标服务器IP’ ;
学习MySQL的第四天(DCL,日志)
查看目标服务器:
学习MySQL的第四天(DCL,日志)
在目标服务器里登录后发现可以查看到设置的权限即所有库和所有表

  • 如果直接在赋予权限后加上密码,那么如果没有用户就会直接创建用户并赋予权限。
    语法:grant 权限列表 on 库名.表名 to ‘用户名’@‘目标服务器IP’ [identified by ‘密码’ with option参数];

1.6回收权限

语法:REVOKE 权限列表 ON 数据库名 FROM 用户名@‘目标服务器IP’ ;
学习MySQL的第四天(DCL,日志)
查看一下目标服务器是否还有权限
学习MySQL的第四天(DCL,日志)

二、日志

2.1日志分类

学习MySQL的第四天(DCL,日志)

2.2错误日志

错误日志 :启动,停止,关闭失败报错。
vim /etc/my.cnf 进入主配置文件,观察日志是否启动。 log-error=/var/log/mysqld.log 该字段,标记是否启动日志,以及日志位置。
学习MySQL的第四天(DCL,日志)
如果哪天mysql服务起不来了,请来这个日志文件看看。

2.3二进制日志

二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。
vim /etc/my.cnf 进入配置文件后,添加 log_bin 启动二进制日志
学习MySQL的第四天(DCL,日志)
然后重启一下
systemctl restart mysqld
那么二进制日志就启动了

接下来我们测试一下
首先我们进入库里创一个库,创一个表,并插入数据
学习MySQL的第四天(DCL,日志)
接下来在二进制日志里查看一下有没有信息产生
学习MySQL的第四天(DCL,日志)

2.4慢查询日志

慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。当某个程序在数据库中执行时间较长时会被记录。
我们要先开启慢日志,也是在配置文件中 /etc/my.cnf
加入下面两行:
启动慢查询日志 slow_query_log=1
当SQL语句执行时间超过 x 时,就会被记录到日志中,建议设置为1或者更短。 long_query_time=x
学习MySQL的第四天(DCL,日志)
之后重启一下 systemctl restart mysqld
接下来我们测试一下
1.我们执行一个程序
学习MySQL的第四天(DCL,日志)
2.查看慢日志
慢日志存放位置 /var/lib/mysql/localhost-slow.log
学习MySQL的第四天(DCL,日志)
慢日志成功保存了所有运行时间超过设置时间的程序。