zoukankan      html  css  js  c++  java
  • 【第九课】MriaDB密码重置和慢查询日志

    1、如何进行修改MariaDB的密码

    记得root密码的修改方式:

    [root@localhost ~]# mysqladmin -uroot -p123456 password "123123"
    [root@localhost ~]# mysql -uroot -p
    Enter password: 
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    [root@localhost ~]# mysql -uroot -p
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 37
    Server version: 10.1.20-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> quit
    Bye
    

    忘记root密码的修改方式

    [root@localhost ~]# vim /etc/my.cnf.d/mariadb-server.cnf 
    [mysqld]	#在mysqld段中增加skip-grant-tables,跳过授权表
    server_id=1111
    log-bin=mysql-bin
    skip-grant-tables
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    log-error=/var/log/mariadb/mariadb.log
    pid-file=/var/run/mariadb/mariadb.pid
    
    [root@localhost ~]# systemctl restart mariadb	#重启mariadb
    [root@localhost ~]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 3
    Server version: 10.1.20-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [mysql]> desc user;
    +------------------------+-----------------------------------+------+-----+----------+-------+
    | Field                  | Type                              | Null | Key | Default  | Extra |
    +------------------------+-----------------------------------+------+-----+----------+-------+
    | Host                   | char(60)                          | NO   | PRI |          |       |
    | User                   | char(80)                          | NO   | PRI |          |       |
    | Password               | char(41)                          | NO   |     |          |       |
    | Select_priv            | enum('N','Y')                     | NO   |     | N        |       |
    | Insert_priv            | enum('N','Y')                     | NO   |     | N        |       |
    | Update_priv            | enum('N','Y')                     | NO   |     | N        |       |
    | Delete_priv            | enum('N','Y')                     | NO   |     | N        |       |
    | Create_priv            | enum('N','Y')                     | NO   |     | N        |       |
    | Drop_priv              | enum('N','Y')                     | NO   |     | N        |       |
    | Reload_priv            | enum('N','Y')                     | NO   |     | N        |       |
    | Shutdown_priv          | enum('N','Y')                     | NO   |     | N        |       |
    | Process_priv           | enum('N','Y')                     | NO   |     | N        |       |
    | File_priv              | enum('N','Y')                     | NO   |     | N        |       |
    | Grant_priv             | enum('N','Y')                     | NO   |     | N        |       |
    | References_priv        | enum('N','Y')                     | NO   |     | N        |       |
    | Index_priv             | enum('N','Y')                     | NO   |     | N        |       |
    | Alter_priv             | enum('N','Y')                     | NO   |     | N        |       |
    | Show_db_priv           | enum('N','Y')                     | NO   |     | N        |       |
    | Super_priv             | enum('N','Y')                     | NO   |     | N        |       |
    | Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N        |       |
    | Lock_tables_priv       | enum('N','Y')                     | NO   |     | N        |       |
    | Execute_priv           | enum('N','Y')                     | NO   |     | N        |       |
    | Repl_slave_priv        | enum('N','Y')                     | NO   |     | N        |       |
    | Repl_client_priv       | enum('N','Y')                     | NO   |     | N        |       |
    | Create_view_priv       | enum('N','Y')                     | NO   |     | N        |       |
    | Show_view_priv         | enum('N','Y')                     | NO   |     | N        |       |
    | Create_routine_priv    | enum('N','Y')                     | NO   |     | N        |       |
    | Alter_routine_priv     | enum('N','Y')                     | NO   |     | N        |       |
    | Create_user_priv       | enum('N','Y')                     | NO   |     | N        |       |
    | Event_priv             | enum('N','Y')                     | NO   |     | N        |       |
    | Trigger_priv           | enum('N','Y')                     | NO   |     | N        |       |
    | Create_tablespace_priv | enum('N','Y')                     | NO   |     | N        |       |
    | ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |          |       |
    | ssl_cipher             | blob                              | NO   |     | NULL     |       |
    | x509_issuer            | blob                              | NO   |     | NULL     |       |
    | x509_subject           | blob                              | NO   |     | NULL     |       |
    | max_questions          | int(11) unsigned                  | NO   |     | 0        |       |
    | max_updates            | int(11) unsigned                  | NO   |     | 0        |       |
    | max_connections        | int(11) unsigned                  | NO   |     | 0        |       |
    | max_user_connections   | int(11)                           | NO   |     | 0        |       |
    | plugin                 | char(64)                          | NO   |     |          |       |
    | authentication_string  | text                              | NO   |     | NULL     |       |
    | password_expired       | enum('N','Y')                     | NO   |     | N        |       |
    | is_role                | enum('N','Y')                     | NO   |     | N        |       |
    | default_role           | char(80)                          | NO   |     |          |       |
    | max_statement_time     | decimal(12,6)                     | NO   |     | 0.000000 |       |
    +------------------------+-----------------------------------+------+-----+----------+-------+
    46 rows in set (0.00 sec)
    
    MariaDB [mysql]> update user set password=password("123456") where user='root';
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 3  Changed: 1  Warnings: 0
    
    MariaDB [mysql]> quit;
    Bye
    [root@localhost ~]# vim /etc/my.cnf.d/mariadb-server.cnf 
    删除/etc/my.cnf里面的skip-grant, 重启服务
    [root@localhost ~]# systemctl restart mariadb
    [root@localhost ~]# mysql -uroot -p
    Enter password: 123456
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 3
    Server version: 10.1.20-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> quit;
    Bye
    
    

    2、Mariadb的慢查询日志

    为什么要配置慢查询日志?

    其目的是为了帮助我们分析MariaDB的瓶颈点,或者说是业务的瓶颈点。任何一个动态网站都会有读取和写入到数据库的操作,如果其中有一个脚本或SQL语句执行特别慢,那么带来的现象可能是用户访问站点时出现卡顿,或者响应较慢。那么为了去分析慢查询,就可以启用慢查询日志的方式。

    如何配置慢查询??

    • (1)进入MariaDB里面进行执行:
      • show variables like "slow%";
      • show variables like "datadir";
      • show variables like "long%";
    • (2)编辑/etc/my.cnf进行配置
    • (3)重启服务
    • (4)模拟慢查询
    • (5)查看慢查询日志
    (1)进入MariaDB里面进行执行
    
    [root@localhost ~]# mysql -uroot -p
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 16
    Server version: 10.1.20-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> show variables like "slow%";	#查看慢查询相关的配置
    +---------------------+--------------------+
    | Variable_name       | Value              |
    +---------------------+--------------------+
    | slow_launch_time    | 2                  |	#慢查询运行时间配置
    | slow_query_log      | OFF                |	#是否开启慢查询
    | slow_query_log_file | localhost-slow.log |	#慢查询日志文件名称,存在于datadir中
    +---------------------+--------------------+
    3 rows in set (0.01 sec)
    
    MariaDB [(none)]> show variables like "datadir";	#查看datadir路径
    +---------------+-----------------+
    | Variable_name | Value           |
    +---------------+-----------------+
    | datadir       | /var/lib/mysql/ |
    +---------------+-----------------+
    1 row in set (0.00 sec)
    
    MariaDB [(none)]> show variables like "long%";	#查询时间配置
    +-----------------+-----------+
    | Variable_name   | Value     |
    +-----------------+-----------+
    | long_query_time | 10.000000 |
    +-----------------+-----------+
    1 row in set (0.00 sec)
    
    (2)编辑/etc/my.cnf进行配置
    [root@localhost ~]# vim /etc/my.cnf		#修改my.cnf配置慢查询日志
    [mysqld]
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    slow_query_log = ON		#开启慢查询记录
    slow_query_log_file = /var/lib/mysql/mysql-slow.log		#配置慢查询日志文件路径
    long_query_time = 2		#配置查询时间超过2s进行记录
    
    (3)重启服务
    [root@localhost ~]# systemctl restart mariadb
    
    (4)模拟慢查询
    [root@localhost ~]# mysql -uroot -p		#重新登录,运行select进行验证记录
    Enter password: 
    Welcome to the MariaDB monitor.  Commands end with ; or g.
    Your MariaDB connection id is 3
    Server version: 10.1.20-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    MariaDB [(none)]> select sleep(5);
    +----------+
    | sleep(5) |
    +----------+
    |        0 |
    +----------+
    1 row in set (5.00 sec)
    
    (5)查看慢查询日志
    [root@localhost ~]# cat /var/lib/mysql/mysql-slow.log 	#查看慢查询日志
    /usr/libexec/mysqld, Version: 10.1.20-MariaDB (MariaDB Server). started with:
    Tcp port: 0  Unix socket: /var/lib/mysql/mysql.sock
    Time                 Id Command    Argument
    # Time: 190218 11:43:05
    # User@Host: root[root] @ localhost []
    # Thread_id: 3  Schema:   QC_hit: No
    # Query_time: 5.002032  Lock_time: 0.000000  Rows_sent: 1  Rows_examined: 0
    # Rows_affected: 0
    SET timestamp=1550461385;
    select sleep(5);	#提示慢查询的运行指令
    

    同时,还可以使用show processlist;show full processlist;进行查看慢查询队列

    show processlist; 查看所有的队列;可以查看数据库中有些什么查询和查询量的多少,如果查询量超过100都会比较慢,此时就需要进行优化。

    show full processlist; 和上面有什么区别呢?如果有1个语句特别长,info列,只会显示一部分,使用这个命令时,就可以显示完整的信息。

    MariaDB [(none)]> show processlist;
    +----+------+-----------+------+---------+------+-------+------------------+----------+
    | Id | User | Host      | db   | Command | Time | State | Info             | Progress |
    +----+------+-----------+------+---------+------+-------+------------------+----------+
    |  3 | root | localhost | NULL | Query   |    0 | init  | show processlist |    0.000 |
    +----+------+-----------+------+---------+------+-------+------------------+----------+
    1 row in set (0.00 sec)
    
    MariaDB [(none)]> show full processlist;
    +----+------+-----------+------+---------+------+-------+-----------------------+----------+
    | Id | User | Host      | db   | Command | Time | State | Info                  | Progress |
    +----+------+-----------+------+---------+------+-------+-----------------------+----------+
    |  3 | root | localhost | NULL | Query   |    0 | init  | show full processlist |    0.000 |
    +----+------+-----------+------+---------+------+-------+-----------------------+----------+
    1 row in set (0.00 sec)
    
  • 相关阅读:
    ASP.NET应用程序与页面生命周期
    Git源码管控规范
    redis cluster
    jwt token and shiro
    openapi and light-4j
    ps 证件照制作
    js eval 动态内容生成
    pdnovel 看书 读书 听书
    crawler 使用jQuery风格实现
    websocket聊天体验(二)
  • 原文地址:https://www.cnblogs.com/linuxk/p/10382389.html
Copyright © 2011-2022 走看看