• mysql 日志


    错误日志:

      错误日志在Mysql数据库中很重要,它记录着mysqld启动和停止,以及服务器在运行过程中发生的任何错误的相关信息。

      1.配置信息

      --log-error=[file-name]用来指定错误日志存放的位置。

      如果没有指定[file-name],默认hostname.err做为文件名,默认存放在DATADIR目录中。

      也可以将log-error配置到my.cnf文件中,这样就省去了每次在启动mysqld时都手工指定--log-error.例如:

      [mysql@test2]$ vi /etc/my.cnf

      # The MySQL server

      [mysqld]

      ....

      log-error = /var/lib/mysql/test2_mysqld.err

      .....
    三.查询日志

      查询日志记录了clinet的所有的语句。

      Note:由于log日志记录了数据库所有操作,对于访问频繁的系统,此种日志会造成性能影响,建议关闭。

      1.配置信息

      --log=[file-name]用来指定错误日志存放的位置。

      如果没有指定[file-name],默认为主机名(hostname)做为文件名,默认存放在DATADIR目录中。

      也可以将log配置到my.cnf文件中,这样就省去了每次在启动mysqld时都手工指定--log.  

    四.慢查询日志

      慢查询日志是记录了执行时间超过参数long_query_time(单位是秒)所设定值的SQL语句日志。

      Note:慢查询日志对于我们发现性能有问题的SQL有很帮助,建议使用并经常分析

      1.配置信息    

      --log-slow-queries=[file-name]用来指定错误日志存放的位置。

      如果没有指定[file-name],默认为hostname-slow.log做为文件名,默认存放在DATADIR目录中。

      也可以将log-slow-queries配置到my.cnf文件中,这样就省去了每次在启动mysqld时都手工指定--log-slow-queries

    如果慢查询日志记录很多可以使用mysqldumpslow进行分类汇总  

    附录:

    //显示所有本机上的二进制日志 mysql> SHOW MASTER LOGS; //删除所有本机上的二进制日志 mysql> RESET MASTER; //删除所有创建时间在binary-log.xxx之前的二进制日志 mysql> PURGE MASTER LOGS TO 'binary-log.xxx'; //只保留最近6天的日志,之前的都删掉 find /var/intra -type f -mtime +6 -name "*.log" -exec rm -f {} ; //用键盘左上角(也就是Esc下面)那个键包围起来,说明是命令。-1d是昨天,以此类推-1m是上个月等等 day=`/bin/date -v -1d +%Y%m%d`; //给文件改名 mv xxx.log xxx-${day}.log; //这里还要加上数据库的用户名密码,作用是更新日志(包括二进制日志和查询日志等等) mysqladmin flush-logs

      二进制日志也通常被称为binlog,它记当着所有的DDL和DML,但不包括数据查询语句。

      1.配置信息

      --log-bin=[file-name]用来指定错误日志存放的位置。

      如果没有指定[file-name],默认为主机名后面跟-bin做为文件名,默认存放在DATADIR目录中。

      也可以将log-bin配置到my.cnf文件中,这样就省去了每次在启动mysqld时都手工指定--log-bin.例如:

      # The MySQL server

      [mysqld]

      .....

      log-bin = /var/lib/mysql/log-bin

      ......

      2.查看blnlog

      由于binlog以是binary方式存取,不能直接查看,需要用mysql提供的mysqlbinlog工具查看。

      3.删除binlog

      (1).用reset master命令删除所有日志,新日志重新从000001开始编号

      (2).用purge master logs to 'mysq-bin.******' 命令可以删除指定编号前的所有日志

      (3).用purge master logs to before 'YYYY-MM-DD HH24:MI:SS'命令可以删除'YYYY-MM-DD HH24:MI:SS'之前的产生的所有日志

      (4).可以在my.cnf中指定--expire_logs_days=#,此参数设置了binlog日志的过期天数

      4.测试案例

      [mysql@test2]$ mysql -uroot -p

      Enter password:

      Welcome to the MySQL monitor. Commands end with ; or g.

      Your MySQL connection id is 18 to server version: 5.0.26-standard-log

      Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

      mysql> use test;

      Database changed

      mysql> select * from pet;

      +----------+--------+---------+------+------------+------------+

      | name | owner | species | sex | birth | death |

      +----------+--------+---------+------+------------+------------+

      | Fluffy | Harold | cat | f | 1993-02-04 | NULL |

      | Claws | Gwen | cat | m | 1994-03-17 | NULL |

      | Buffy | Harold | dog | f | 1989-05-13 | NULL |

      | Fang | Benny | dog | m | 1990-08-27 | NULL |

      | Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |

      | Chirpy | Gwen | bird | f | 1998-09-11 | NULL |

      | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

      | Slim | Benny | snake | m | 1996-04-29 | NULL |

      +----------+--------+---------+------+------------+------------+

      8 rows in set (0.06 sec)

      mysql> insert into pet values('hunter','yxyup','cat','f','1996-04-29',null);

      Query OK, 1 row affected (0.03 sec)

      mysql> select * from pet;

      +----------+--------+---------+------+------------+------------+

      | name | owner | species | sex | birth | death |

      +----------+--------+---------+------+------------+------------+

      | Fluffy | Harold | cat | f | 1993-02-04 | NULL |

      | Claws | Gwen | cat | m | 1994-03-17 | NULL |

      | Buffy | Harold | dog | f | 1989-05-13 | NULL |

      | Fang | Benny | dog | m | 1990-08-27 | NULL |

      | Bowser | Diane | dog | m | 1979-08-31 | 1995-07-29 |

      | Chirpy | Gwen | bird | f | 1998-09-11 | NULL |

      | Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

      | Slim | Benny | snake | m | 1996-04-29 | NULL |

      | hunter | yxyup | cat | f | 1996-04-29 | NULL |

      +----------+--------+---------+------+------------+------------+

      9 rows in set (0.00 sec)

    mysql> update pet set sex='m' where name='hunter';

      Query OK, 1 row affected (0.00 sec)

      Rows matched: 1 Changed: 1 Warnings: 0

      mysql> delete from pet where name='hunter';

      Query OK, 1 row affected (0.00 sec)

      [mysql@test2]$ mysqlbinlog log-bin.000002

      /*!40019 SET @@session.max_insert_delayed_threads=0*/;

      /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

      # at 4

      #080313 7:52:47 server id 1 end_log_pos 98 Start: binlog v 4, server v 5.0.26-standard-log created 080313 7:52:47

      # Warning: this binlog was not closed properly. Most probably mysqld crashed writing it.

      # at 98

      #080313 10:06:26 server id 1 end_log_pos 229 Query thread_id=18 exec_time=0 error_code=0

      use test;

      SET TIMESTAMP=1205373986;

      SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;

      SET @@session.sql_mode=0;

      /*!C latin1 */;

      SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;

      insert into pet values('hunter','yxyup','cat','f','1996-04-29',null);

      # at 229

      #080313 10:07:13 server id 1 end_log_pos 334 Query thread_id=18 exec_time=0 error_code=0

      SET TIMESTAMP=1205374033;

      update pet set sex='m' where name='hunter';

      # at 334

      #080313 10:07:38 server id 1 end_log_pos 432 Query thread_id=18 exec_time=0 error_code=0

      SET TIMESTAMP=1205374058;

      delete from pet where name='hunter';

      # at 432

      #080313 10:14:13 server id 1 end_log_pos 532 Query thread_id=18 exec_time=0 error_code=0

      SET TIMESTAMP=1205374453;

      create table t1(id int,name char(10));

      # at 532

      #080313 10:14:41 server id 1 end_log_pos 625 Query thread_id=18 exec_time=0 error_code=0

      SET TIMESTAMP=1205374481;

      alter table t1 add sex char(2);

      # End of log file

      ROLLBACK /* added by mysqlbinlog */;

      /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;

      [mysql@test2]$

        可以看出,三条DML操作和两条DDL都记录到了binlog中了,而select并没有记录。

  • 相关阅读:
    Count and Say leetcode
    Find Minimum in Rotated Sorted Array II leetcode
    Find Minimum in Rotated Sorted Array leetcode
    Search in Rotated Sorted Array II leetcode
    search in rotated sorted array leetcode
    Substring with Concatenation of All Words
    Subsets 子集系列问题 leetcode
    Sudoku Solver Backtracking
    Valid Sudoku leetcode
    《如何求解问题》-现代启发式方法
  • 原文地址:https://www.cnblogs.com/johnchain/p/2822320.html
Copyright © 2020-2023  润新知