扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
MySQL具有多种日志,用来记录mysqld的活动情况,以下为MySQL中的类型及其简要说明。
宝坻网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联自2013年起到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
日志类型 | 说明 |
---|---|
General query log | 记录从客户端获取到的连接和语句 |
Slow query log | 记录超过long_query_time时间的查询 |
Error log | 记录在mysqld服务启动、运行或停止时遇到的问题 |
Binary log | 记录修改数据的语句 |
Relay log | 在复制结构中,从库从主库获取到的数据修改 |
DDL log(metadata log ) | DD语句执行的元数据操作 |
默认情况下,除了Windows系统上的Error log,其他日志都是不可用的。
下面将按照日志的共同特征、每个日志的特点来讨论这些日志的情况
默认情况下,除了Windows系统上的Error log,其他日志都是不可用的,要开启这些日志,需要在数据库启动时指定相应的选项
日志类型 | 开启选项 |
---|---|
General query log | --general_log |
Slow query log | --slow_query_log |
Binary log | --log-bin |
Error log | --log-error |
Relay log | 不需要额外开启 |
DDL log | 不需要额外开启 |
general query log和slow query log也可以在数据库运行时进行启用或禁用。可以通过设置全局变量general_log和slow_query_log来控制他们的启用和禁用,例如:
SET GLOBAL general_log = 'OFF';
SET GLOBAL slow_query_log = 'ON';
默认情况下,日志都存放在数据库的数据目录下。可以通过相应的选项来修改位置和名称。具体可以参考下表,在下表中,host_name代表数据库服务器的主机名,nnnnnn代表一个6位的整数序列。file_name和base_name是指定的文件名称。可以通过在file_name或base_name中使用绝对路径来修改日志存放的位置。
日志类型 | 默认名称 | 相应选项 |
---|---|---|
General query log | host_name.log | --general_log_file=file_name |
Slow query log | host_name-slow.log | --slow_query_log_file=file_name |
Binary log | pif-file-bin | --log_bin=base_name |
Error log | host_name.err | --log_error=file_name |
Relay log | hostname-relay-bin.nnnnnn | --relay-log=file_name |
DDL log | ddl_log.log | 无法修改 |
general query log和slow query log除了记录在日志文件中以外,也可以记录在日志表中。日志表在mysql库中。名称分别为general_log和slow_log。可以通过--log-output来指定将这两种日志的存放位置,位置可以是表、文件、或者表和文件。
Binary log日志文件的默认名称是pid-file的值加上-bin后缀。默认pid-file的值是服务器的主机名。但是不建议使用默认值,当使用默认值时,如果服务器的主机名发生变更,Binary log日志文件的名称也需要进行相应更改。
日志刷新会关闭然后重新打开日志文件。对于binary log和relay log,还会创建一个新的日志文件。
日志刷新发生在以下情况下:
1.使用FLUSH LOGS语句
2.使用带有flush-logs或者reflush选项的mysqladmin命令
3.使用带有--flush-logs或者--master-data选项的mysqldump命令
FLUSH LOGS语句会关闭并重新打开所有的日志文件,如果需要只刷新某种日志文件,需要指定日志类型,例如:
FLUSH SLOW LOGS
日志类型 | 记录时间 |
---|---|
generl query log | 在服务器接收到客户端发来的命令时就写入到日志中。 |
slow query log | 在语句执行完毕,释放锁之后写入到日志中。 |
binary log | 在语句执行完毕,释放锁之前写入到日志中。 |
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流