MySQL数据库 SQL语言3

DCL

权限管理级别

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

Mysql用户管理

  1. 创建用户:
语法:
create user user1@‘localhost’ identified by  ‘ZhongGuo@123Create  创建(关键字)  
user  用户(关键字)
@ 分隔符 (关键字)  
user1  用户名称(自定义)
‘localhost’ 允许登录的主机 
Identified by 身份认证(关键字)
‘ZhongGuo@123’   用户设置密码

  1. 删除用户:
语法:drop user ‘user1’@‘localhost’ ; 
Select user from mysql.user ;
  1. 修改用户密码
    Root修改密码:
Mysqladmin –uroot –p‘123’ password ‘新的密码’;
Set password=password(‘新的密码’);
flush privileges; 刷新权限
123为旧密码

丢失root用户密码
原理:使系统在启动时,不加载密码文件
(1)修改mysql启动设置

Vim /etc/my.cnf
[mysql]
Skip-grant-tables  跳过密码

(2) 重启mysql,无密码登录

Systemctl  restart mysql
Mysql  -uroot
然后再修改自己的密码
UPDATE mysql.user SET authentication_string=password('ZhongGuo@123')  where  user='root'  and  host='localhost';
刷新权限 flush privileges

(3)最后修改MySQL启动设置
(4)注释掉跳过密码

  • 登录mysql
MySQL –P 3306 –uroot  -p’123’  mysql –e ‘show tables;
-pmysql服务器端口    默认3306  大P
-u指定用户名      默认root
-p 指定登录密码    默认空密码
Mysql是指定登录的数据库
-e 接SQL语句

  • 免登录查询数据库
Mysql –uroot –p‘ZhongGuo@123’ localhost –P 3306 mysql –e ‘show tables

Mysql权限原理

Grant  all  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 ‘ZhongGuo@123;
某表中一列查询客户端主机

% :所有主机
192.168.2.% :192.168.2.0网段的所有主机
192.168.2.168 :指定主机
Localhost :指定主机
With_option参数 : Grant option :授权选项

Mysql权限示例

  • 授权目标
    授予user2 对bbs库所有的表,具有所有权限(不包含授权)
Grant all on bbs.* to user2@’%’ identified by ‘ZhongGuo@123;

创建用户 Crate user user2@’%’ identified by ‘ZhongGuo@123;
授权账户 grant all on bbs@‘%’ identified by ‘ZhongGuo@123’;

使用其他测试账号操作数据库
MySQL –uuser2 –p‘ZhongGuo@123’ –h IP
能进入bbs库 创建数据表、插入数据,  授权验证成功

  • 查看权限
看自己权限:show grants ;
看他人权限; show grants for user2@’%’;

  • 回收权限
语法:revoke 权限列表 on 数据库名 from 用户名@‘客户端主机’
      Revoke all privileges on bbs.* from user2@’%;
删除用户
5.6前,先revoke all privilege  再 drop user
5.7后, 直接drop user

日志

  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 该字段,标记是否启动日志,以及日志位置

  • 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.111 查看二进制文件日志
然后进入数据库,进行操作 创库,创表,插数据
完成二进制日志启动,查询结果
Mysqlbinlog –v /var/lib/mysql/localhoat-bin。111

  • Slow query log

默认慢查询日志未开启
开启慢查询日志功能
Vim /etc/my.cnf
Slow_query_log=1 启动慢查询日志
Long-query_time=3 当执行时间超过此值,就会被记录到日志中,建议设为1
Systemctl restart mysqld 重启服务器
查看慢查询日志文件
Ll /var/lib/mysql/slow 查看日志文件已生成
模拟慢查询
Select benchmark(50000000,2*3) 测试语句 超常时间查询
验证慢查询日志
Tail /var/lib/mysql/localhost-slow.log 观察长查询日志记录,记录了刚才超长的查询结果。
,进行优化。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值