萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql優化之日志配置詳解

mysql優化之日志配置詳解

mysql優化是網站中一個非常重要的事情了,我們通常會對mysql數據庫及sql語句進行優化處理了,下面一起來看看小編整理的mysql優化之日志配置教程。


如果你選mysql數據庫作為數據持久化的工具,那麼就需要一個合理的日志配置,這樣有助於排錯和數據備份及恢復!

首先我們可以通過下面的MySQL的sql查詢正在運行中的日志配置。

剛好我們熟悉一下SHOW VARIABLES LIKE的用法!這個命令是用來查詢MySQL運行時配置的語句,LIKE後面的可以接通配符查找!

還有對應的設置語法叫SET GLOBAL,後面我們會用到。

mysql> SHOW VARIABLES LIKE '%log%';
+-----------------------------------------+---------------------------------+
| Variable_name                           | Value                           |
+-----------------------------------------+---------------------------------+
| back_log                                | 50                              |
| binlog_cache_size                       | 32768                           |
| binlog_direct_non_transactional_updates | OFF                             |
| binlog_format                           | STATEMENT                       |
| expire_logs_days                        | 0                               |
| general_log                             | OFF                             |
| general_log_file                        | /var/run/mysqld/mysqld.log      |
| innodb_flush_log_at_trx_commit          | 1                               |
| innodb_locks_unsafe_for_binlog          | OFF                             |
| innodb_log_buffer_size                  | 1048576                         |
| innodb_log_file_size                    | 5242880                         |
| innodb_log_files_in_group               | 2                               |
| innodb_log_group_home_dir               | ./                              |
| innodb_mirrored_log_groups              | 1                               |
| log                                     | OFF                             |
| log_bin                                 | OFF                             |
| log_bin_trust_function_creators         | OFF                             |
| log_bin_trust_routine_creators          | OFF                             |
| log_error                               | /var/log/mysqld.log             |
*| log_output                              | FILE                            |*
| log_queries_not_using_indexes           | OFF                             |
| log_slave_updates                       | OFF                             |
| log_slow_queries                        | OFF                             |
| log_warnings                            | 1                               |
| max_binlog_cache_size                   | 18446744073709547520            |
| max_binlog_size                         | 1073741824                      |
| max_relay_log_size                      | 0                               |
| relay_log                               |                                 |
| relay_log_index                         |                                 |
| relay_log_info_file                     | relay-log.info                  |
| relay_log_purge                         | ON                              |
| relay_log_space_limit                   | 0                               |
| slow_query_log                          | OFF                             |
| slow_query_log_file                     | /var/run/mysqld/mysqld-slow.log |
| sql_log_bin                             | ON                              |
| sql_log_off                             | OFF                             |
| sql_log_update                          | ON                              |
| sync_binlog                             | 0                               |
+-----------------------------------------+---------------------------------+
38 rows in set (0.00 sec)

請注意log_output一行,次配置決定將日志輸出到文件還是table中。

我們可以通過SHOW VARIABLES LIKE 'log_output';查詢此配置。

I. 通過文件配置

mysql的配置文件位於 /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
symbolic-links=0
# 錯誤日志
log-error=/var/log/mysql/error_mysql.log
# Slow Query
log-slow-queries=/var/log/mysql/slow_mysql.log
long_query_time=2
# 記錄沒有使用索引的查詢
#log-queries-not-using-indexes

# 常規查詢日志,老高主要用於調試PDO參數綁定的查詢
general_log=1
general_log_file=/var/log/mysql/general_mysql.log
# < MySql5.1.12
#log = /var/log/mysql/general_mysql.log


[mysqld_safe]
# syslog指將日志記錄至系統日志
#syslog
pid-file=/var/run/mysqld/mysqld.pid
log_error=/var/log/mysql/error_mysqld.log

接下來需要重啟服務器即可是配置生效!

II. 熱配置

有時候可能想在不重啟mysql的方式開啟日志,怎麼辦?

當然我們可以通過MySQL的sql查詢開啟。

以下操作假設你已經以root方式登錄進入MySQL交互界面

常規日志

# 查看常規日志配置
SHOW VARIABLES LIKE 'general_log%';
下面我們開啟他

# 設置日志文件路徑,請先保證路徑存在
SET GLOBAL general_log_file='/var/log/mysql/general_mysql.log';
# 開啟日志
SET GLOBAL general_log=ON;

# 關閉日志
SET GLOBAL general_log=OFF;
查看常規日志配置

錯誤日志

聰明的朋友,既然已經知道SET GLOBAL、SHOW VARIABLES LIKE這兩個命令,我相信其他的日志配置就難不倒你了。

所以在此老高就不??鋁恕?/p>

copyright © 萬盛學電腦網 all rights reserved