开源数据库MySQL DBA运维实战 第4章 SQL3

DCL

权限级别

  1. Global level
    所有库,所有表的权限。
    2. Database level
    某个数据库中的所有表的权限。
    3 .Table level
    库中的某个表的权限
    4. Column level
    表中的某个字段,的权限。

mysql用户管理

1. 创建用户

示例
CREATE USER user1@‘localhost’ IDENTIFIED BY ‘QianFeng@123456’;
在这里插入图片描述

验证
select * from mysql.user\G;在这里插入图片描述

	注释
		CREATE  创建(关键字)
		USER 用户(关键字)
		user1   用户名称(自定义)
		@ 分隔符(关键字)
		‘localhost’   允许登录的主机
		IDENTIFIED BY 身份认证(关键字)
		‘QianFeng@123456’   用户密码

2. 删除用户

示例
DROP USER ‘user1’@‘localhost’;
操作示例
select * from mysql.user\G;
或者select user from mysql.user;

3. 修改用户密码

root修改自己密码
示例1
# mysqladmin -uroot -p’123’ password ‘new_password’
前提是拥有系统权限
update也可以哦。不过比较复杂
UPDATE mysql.user SET authentication_string=password(‘new_password’) WHERE user=’root’ AND host=’localhost’;
FLUSH PRIVILEGES;
刷新权限
在这里插入图片描述

示例2
SET PASSWORD=password(‘new_password’);
FLUSH PRIVILEGES
;
刷新权限

丢失root用户密码
1.前言
当root用户,忘记了密码。可以使用破解的方式来登录系统。修改密码。
原理:使系统在启动时,不加载密码文件。
2.修改mysql启动设置
# vim /etc/my.cnf
[mysqld]
skip-grant-tables

3.重启mysql,无密码登录
重启mysql程序
# systemctl restart mysqld
无密码登录
# mysql -uroot
修改自己的密码
mysql>UPDATE mysql.user SET authentication_string=password(‘QianFeng@123456789’) where user=‘root’ and host=‘localhost’;
mysql> FLUSH PRIVILEGES;

4.修改mysql启动设置
注释掉跳过密码

4. 登录MySQL

mysql -P 3306 -u root -p123 mysql -e ‘show tables’
-h 指定主机名 【默认为localhost】
-P MySQL服务器端口 【默认3306】 大P
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
此处mysql为指定登录的数据库
-e 接SQL语句
示例
免登录查询数据库
mysql -uroot -p’QianFeng@123’ -hlocalhost -P 3306 mysql -e ‘show tables’
在这里插入图片描述

mysql权限原理

赋权

语法格式
grant 权限列表 on 库名.表名 to ‘用户名’@‘客户端主机’ [identified by ‘密码’ with option参数];
在这里插入图片描述
在这里插入图片描述
权限列表
all: 所有权限(不包括授权权限)
select,update 查询更新
数据库.表名

		*.*
			所有库下的所有表
		web.*
			web库下的所有表
		web.stu_info
			web库下的stu_info表

grant SELECT (id), INSERT (name,age) ON
mydb.mytbl to ‘user8’@‘localhost’ identified by ‘QianFeng@123’;
Column level 表中的某个字段,的权限。
设置’user8’@'localhost’只能看ID,修改name,age,密码是QianFeng@123
客户端主机
%
所有主机
192.168.2.% 192.168.2.0网段的所有主机
192.168.2.168 指定主机
localhost 指定主机
with_option参数
GRANT OPTION
授权选项
grant授权加密具备创建用户的权力

回收权限

查看权限
查看自己的权限
SHOW GRANTS\G
查看别人的权限
SHOW GRANTS FOR admin3@’%’\G

回收权限REVOKE
语法
REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
示例
revoke all privileges on . from xiaol@‘10.8.162.%’ //回收所有权限
在这里插入图片描述
或者直接删除用户
删除用户的版本问题
5.6之前,先 revoke all privilege 再 drop user
5.7之后,直接 drop user
drop user xiaol@‘10.8.162.%’;在这里插入图片描述

日志

一、日志分类


1 错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log
2 通用查询日志:所有的查询都记下来。
3 二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。
4 中继日志:读取主服务器的binlog,在本地回放。保持一致。
5 slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。
6 DDL log: 定义语句的日志。
在这里插入图片描述

1.Error Log

vim /etc/my.cnf
进入主配置文件,观察日志是否启动。
log-error=/var/log/mysqld.log
该字段,标记是否启动日志,以及日志位置。
如果哪天mysql服务起不来了,请来这个日志文件看看。
在这里插入图片描述

2.Binary Log

默认没有开启,二进制日志
启动二进制日志
# vim /etc/my.cnf
log_bin
添加该字段。指启动二进制日志
server-id=2
群集问题,必须指定该主机的序号。数字随意
# systemctl restart mysqld
重启数据库
在这里插入图片描述
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001
在这里插入图片描述

3.Slow Query Log
默认慢查询日志未开启

开启慢查询日志功能
vim /etc/my.cnf
加入下面2行配置
slow_query_log=1
启动慢查询日志
这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。

long_query_time=3
当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。
重启服务器
#systemctl restart mysqld
在这里插入图片描述

模拟慢查询
mysql>SELECT BENCHMARK(500000000,2*3);
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值