DLC
SQL3
1、DLC
- 权限级别
- Global level:所有库,所有表的权限。
- Database level:某个数据库中的所有表的权限。
- Table level:库中的某个表的权限
- Column level:表中的某个字段,的权限。
- mysql用户管理
创建用户
CREATE USER user1@‘localhost’ IDENTIFIED BY ‘QianFeng@123456’;
elect user from mysql.user; //查询验证
CREATE 创建(关键字)
USER 用户(关键字)
user1 用户名称(自定义)
@ 分隔符(关键字)
‘localhost’ 允许登录的主机
IDENTIFIED BY 身份认证(关键字)
‘QianFeng@123456’ 用户密码
删除用户
drop user ‘user1’@‘localhost’;
select * from mysql.user\G; / select user from mysql.user;
修改用户密码
mysqladmin -uroot -p’123’ password ‘new_password’ // 在数据库外使用
SET PASSWORD=password(‘new_password’); FLUSH PRIVILEGES; // 在数据内部使用
丢失root用户密码
vim /etc/my.cnf [mysqld] skip-grant-tables // 修改mysql启动设置
systemctl restart mysqld
mysql -uroot
UPDATE mysql.user SET authentication_string=password(‘QianFeng@123456789’) where user=‘root’ and host=‘localhost’;
FLUSH PRIVILEGES;
改回mysql启动设置
登录MYSQL
mysql -P 3306 -u root -p123 mysql -e ‘show tables’
-P MySQL服务器端口 【默认3306】 大P
-u 指定用户名 【默认root】
-p 指定登录密码 【默认为空密码】
-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表
==客户端主机
192.168.2.% 192.168.2.0网段的所有主机
192.168.2.168 指定主机
localhost 指定主机
==with_option参数
GRANT OPTION
- mysql权限示例
语法格式
CREATE USER admin3@’%’ IDENTIFIED BY ‘QianFeng@123’; // root账户创建
GRANT ALL ON bbs.* TO admin3@’%’ IDENTIFIED BY ‘QianFeng@13910604684’; // 授权账户
使用测试账户操作数据库
[root@localhost ~]# mysql -uadmin3 -p’QianFeng@123’
mysql> create database bbs;
mysql> create database bba; // 报错
进入bbs库,创建数据表和插入数据 // 拥有创表插入数据权限
2、日志
(1)日志分类
- 错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log
- 二进制日志:实现备份,增量备份。只记录改变数据,除了select都记
- slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员
(2)Error Log
- vim /etc/my.cnf // 进入主配置文件,观察日志是否启动
- log-error=/var/log/mysqld.log // 该字段,标记是否启动日志,以及日志位置。
(3)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 // 找到一个记录位置
- mysqlbinlog -v /var/lib/mysql/localhost-bin.000001 // 完成二进制日志启动,查询测试
(4)Slow Query Log
- 默认慢查询日志未开启
- vim /etc/my.cnf // 开启慢查询日志功能
- slow_query_log=1 // 启动慢查询日志
- long_query_time=3 // 当SQL语句执行时间超过此数值时,就会被记录到日志中
- systemctl restart mysqld // 不要操作,容易出问题
更多相关文章
- 03. SpringCloud实战项目-配置虚拟机网络
- 【DB笔试面试482】如何查询SCHEDULER JOB的运行日志?
- 【等待事件】日志类 等待事件(4.4)--log buffer space(日志缓冲空间
- 【等待事件】日志类 等待事件(4.5)--log file sequential read
- elk7.4+filebeat收集日志
- 单个logstash文件收集多个filebeat日志
- ssh登录日志收集
- Authid Current_User的使用
- 【等待事件】日志类 等待事件(4.1)--log file switch(日志文件切换)