概述
目录
DCL
mysql用户管理
1. 创建用户
2. 删除用户
3. 修改用户密码
4. 登录MySQL
mysql权限原理
mysql权限示例
回收权限
日志
一、日志分类
二、Error Log
三、Binary Log
四、Slow Query Log
DCL
权限级别
1. Global level 所有库,所有表的权限。
2. Database level,某个数据库中的所有表的权限。
3 .Table level,库中的某个表的权限
4. Column level 表中的某个字段,的权限。
mysql用户管理
1. 创建用户
CREATE USER 用户名@'主机' IDENTIFIED BY ‘密码’
例: CREATE USER user1@'localhost' IDENTIFIED BY 'QianFeng@123456';
注释:CREATE 创建(关键字) USER 用户(关键字) user1 用户名称(自定义) @ 分隔符(关键字)
‘localhost’ 允许登录的主机 IDENTIFIED BY 身份认证(关键字) ‘QianFeng@123456’ 用户密码
验证:select * from mysql.userG;
2. 删除用户
DROP USER 'user1'@'localhost';
3. 修改用户密码
root修改自己密码
示例1:# mysqladmin -uroot -p'QianFeng@123456' password 'QianFeng@123';
前提是拥有系统权限
示例2:SET PASSWORD=password('new_password'); //new_password代表新的密码
FLUSH PRIVILEGES; //刷新权限
丢失root用户密码
1.前言:当root用户,忘记了密码。可以使用破解的方式来登录系统。修改密码。
2.修改mysql启动设置
vim /etc/my.cnf
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';
==客户端主机: %
192.168.2.% 192.168.2.0网段的所有主机
192.168.2.168 指定主机
localhost 指定主机
==with_option参数: GRANT OPTION 授权选项
mysql权限示例
赋予权限
授权目标
授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)
GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@13910604684';
1.准备测试账户 :CREATE USER admin3@'%' IDENTIFIED BY 'QianFeng@123';
2.授权账户 root账号授权
mysql> GRANT ALL ON bbs.* TO admin3@'%' IDENTIFIED BY 'QianFeng@123';
3.使用测试账户操作数据库
[root@localhost ~]# mysql -uadmin3 -p'QianFeng@123'
mysql> create database bbs;
试试创建别的库
mysql> create database bba;
进入bbs库,创建数据表和插入数据。
回收权限
查看权限:
查看自己的权限:SHOW GRANTSG; //root账户
查看别人的权限:SHOW GRANTS FOR admin3@'%'G
回收权限REVOKE
语法:REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’
示例: REVOKE ALL PRIVILEGES ON bbs.* FROM admin3@’%’; //回收所有权限
还有一个简单粗暴的方法就是直接删除用户
例:mysql> drop user 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 //编辑主配置文件
[root@localhost ~]# systemctl restart mysqld //重启数据库
测试
1 查看二进制日志文件当前状态
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001 找到一个记录位置 # at 123
2 进入数据库,进行数据操作
创库,创表,创数据
3 完成二进制日志启动,查询测试
mysqlbinlog -v /var/lib/mysql/localhost-bin.000001 //找到刚才创建的记录即可。
四、Slow Query Log
默认慢查询日志未开启
开启慢查询日志功能
vim /etc/my.cnf
slow_query_log=1 启动慢查询日志这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句。
long_query_time=3 当SQL语句执行时间超过此数值时也就是3秒,就会被记录到日志中,建议设置为1或者更短。
重启服务器
[root@localhost ~]# systemctl restart mysqld
查看慢查询日志文件
模拟慢查询
验证慢查询日志
最后
以上就是狂野金鱼为你收集整理的开源数据库MySQL 运维实战 第4章 DCLmysql用户管理mysql权限原理mysql权限示例日志的全部内容,希望文章能够帮你解决开源数据库MySQL 运维实战 第4章 DCLmysql用户管理mysql权限原理mysql权限示例日志所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复