**linux系统——Mysql数据库之DCL控制语言
- DCL——数据库控制语言
创建数据库用户
删除数据库用户
授予用户对数据库的控制权
收回控制权 - 创建数据库用户
句式:**
create user 用户名@'登陆主机' identified by '密码';
用户名,密码自定义即可
登陆主机设置成用户从哪里登陆的服务器ip,localhost指用户只能从部署Mysql服务的这台服务器登陆
示例:
创建数据库用户并查看:
- 授予用户对数据库控制权
句式:
grant 权限 on 数据库.数据表 to 用户@'登陆主机' [ identified by '密码' with option参数]
show grants for '用户'@'登陆主机' \\查看别人的权限
show grants\G \\查看自己的权限
[]内为可选项
identified by '密码' \\加上这个可以授权时自动创建数据库用户
with option \\授权权限选项,基本不加,加上后被授权的用户同样拥有了授予别人权限的权限
权限列表:
all —— 授权权限以外的所有权限
select —— 查看数据权
create —— 建库、建表权
drop —— 删库、删表权
delete —— 除删数据权
insert —— 插入数据权
update —— 更新数据权
等。。。
授予具体权限时,每个权限要用逗号(,)隔开
被授权的库和表的表达方式:
all ——所有库所有表
DB.* —— 指定库下的所有表
DB.TB —— 指定库下的指定表
select(列名),insert(列名,列名)on DB.TB —— 对列赋权
示例:
授权并查看:
登录验证:
创库测试:
- 除权
句式
revoke 权限 on 数据库.数据表 from 用户@'登陆主机'
示例:
除权并查看:
登陆测试:
- 删除数据库用户
句式:
drop user 用户名@'登陆主机'
示例:
删除用户并查看:
登陆测试:
**- mysql用户密码管理
修改密码
免密登陆
- 修改密码
句式:**
mysqladmin -u用户 -p'原密码' password '新密码' \\musql外改密码
set password=password('新密码') \\进入mysql后,改当前登陆用户密码
update mysql.user set authentication_string=password('新密码') where user='root' \\改密码表
flush privileges \\刷新权限
示例:
库外修改:
库内修改:
- 免密登陆
免密登陆用在忘记root密码时使用
步骤:
vim /etc/my.cnf \\编辑mysql配置文件
skip-grant-tables \\[mysql]标签下添加免密登陆配置
systemctl restart mysqld \\重启mysqld程序,使配置生效
mysql \\免密登陆mysql
UPDATE mysql.user SET authentication_string=password('QianFeng@123') where user='root' and host='localhost'; \\修改密码
flush privileges \\刷新权限
改完后再将免密登陆配置删除或注释掉即可
示例:
添加免密登陆配置,重启mysql服务:
免密登陆数据库:
改密码,刷新权限使密码生效:
去掉免密登陆配置后,重启mysql服务:
- Mysql日志
官方手册解释:
1,错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log
2,通用查询日志:所有的查询都记下来。
3,二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。
4,中继日志:读取主服务器的binlog,在本地回放。保持一致。
5,slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。
6,DDL log: 定义语句的日志。
配置
默认只开启了错误日志,二进制日志,slow log要手动配置开启
二进制日志:
配置方法:
vim /etc/my.cnf
[mysql]
log_bin \\[mysql] 标签下添加配置
查看二进制日志内容:
二进制日志要用专用工具查看—mysqlbinlog,内容要注意看at标签,没一个at标签为在数据库内的一条操作
mysqlbinlog /var/lib/mysql/localhost-bin-000001
slow log :
配置方法:
vim /etc/my.cnf
[mysql]
slow_query_log=1 \\开启慢查询日志
long_query_time=3 \\查询时间超过3秒定义为慢查询
查看慢查询日志: