Loading...

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

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

 一、DCL

 1.权限级别  

(1)Global level   —-所有库,所有表的权限

        (2) Database level  —-某个数据库中的所有表的权限。

        (3)Table level      —–库中的某个表的权限

(4)Column level    —– 表中的某个字段的权限

2.mysql用户管理

     (1)创建用户

语法:CREATE  USER  [email protected]’localhost’  IDENTIFIED  BY  ‘[email protected]’;

  CREATE  创建(关键字)

USER 用户(关键字)

user1   用户名称(自定义)

@ 分隔符(关键字)

‘localhost’   允许登录的主机

IDENTIFIED BY 身份认证(关键字)

‘[email protected]’   用户密码

  1. 删除用户

          语法:DROP USER ‘user1’@’localhost’;

           

  1. 修改用户密码
  1. root修改自己的密码 (“123”是旧密码)

   # mysqladmin   -uroot   -p’123′   password    ‘new_password’

   利用uodate更改自己的密码

        UPDATE mysql.user SET authentication_string=password(‘new_password’)  WHERE user=’root’ AND host=’localhost’;

或者:SET PASSWORD=password(‘new_password’);

Flush privileges  —–刷新权限

  1. 丢失root用户密码

  当root用户,忘记了密码,可以使用**的方式来登录系统。

  原理:使系统在启动时,不加载密码文件。

  步骤:

      a: 修改mysql启动设置

                       # vim /etc/my.cnf

                         [mysqld]

           skip-grant-tables

      b: 重启mysql,无密码登录

              # systemctl    restart   mysqld

              # mysql -uroot

mysql>UPDATE mysql.user SET authentication_string=password(‘[email protected]’)  where  user=’root’  and  host=’localhost’;

              mysql> FLUSH PRIVILEGES;

  1. 登录MySQL

          mysql   -P 3306 -u root -p123 mysql -e ‘show tables’

             -P MySQL服务器端口              【默认3306】    大P

             -u 指定用户名                       【默认root】

             -p 指定登录密码                    【默认为空密码】

此处mysql为指定登录的数据库

             -e 接SQL语句

           示例: 免登录查询数据库

              mysql -uroot -p'[email protected]’ -hlocalhost -P 3306 mysql -e ‘show tables’

  1. mysql权限原理

  语法格式

     Grant 权限列表 on 库名.表名 to ‘用户名’@’客户端主机’ [identified by ‘密码’  with option参数];

  mysql权限示例

         赋予权授予admin3 对bbs库 所有的表,具有所有权限(不包含授权)

            GRANT ALL ON bbs.* TO [email protected]’%’ IDENTIFIED BY ‘[email protected]’; 

          查看权限

              查看自己的权限:SHOW GRANTS\G

              查看别人的权限:SHOW GRANTS FOR [email protected]’%’\G 

          回收权限REVOKE

              语法:REVOKE 权限列表 ON 数据库名 FROM 用户名@‘客户端主机’

              示例:REVOKE ALL PRIVILEGES  ON bbs.*  FROM [email protected]’%’;                       //回收所有权限 

二、日志

  1. 日志分类

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

 

错误日志 :启动,停止,关闭失败报错。rpm安装日志位置 /var/log/mysqld.log

 通用查询日志:所有的查询都记下来。

 二进制日志:实现备份,增量备份。只记录改变数据,除了select都记。

 中继日志:读取主服务器的binlog,在本地回放。保持一致.

slow log:慢查询日志,指导调优,定义某一个查询语句,定义超时时间,通过日志提供调优建议给开发人员。

DDL log: 定义语句的日志。

  1. Error Log

   vim   /etc/my.cnf   —进入主配置文件,观察日志是否启动。

log-error=/var/log/mysqld.log  —该字段,标记是否启动日志,以及日志位置。

(如果哪天mysql服务起不来了,请来这个日志文件看看。)

  1. Binary Log –二进制日志

     启动二进制  

 # vim   /etc/my.cnf

        log_bin   —-添加该字段。指启动二进制日志

        server-id=2   —–群集问题,必须指定该主机的序号。数字随意

        # systemctl restart mysqld   —–重启数据库

  1. Slow Query Log

     默认慢查询日志未开启

  1. 开启慢查询日志功能

  vim   /etc/my.cnf

  加入下面两行配置

   slow_query_log=1   —-启动慢查询日志

long_query_time=3  —–当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短。

#systemctl  restart  mysqld     —-重启服务器

 

 

本文来源 爱码网,其版权均为 原网址 所有 与本站无关,文章内容系作者个人观点,不代表 本站 对观点赞同或支持。如需转载,请注明文章来源。

© 版权声明

相关文章