MySQL 로그는 크게 오류 로그(error_log), 쿼리 로그(query_log), 바이너리 로그(binary_log)의 세 가지 유형으로 나눌 수 있습니다.
쿼리 로그(query log): 일반 쿼리 로그는 일반 쿼리 로그(일반 쿼리 로그)와 느린 쿼리 로그(느린 쿼리 로그)의 두 가지 유형으로 나눌 수 있으며, 그 중 일반 쿼리 로그는 각 클라이언트가 연결할 때 관련 정보를 제공하는 데 사용할 수 있으며 SQL 느린 쿼리 로그에는 SQL 문 시간이 미리 설정된 long_query_time을 초과하는 문이 기록됩니다. 데이터 양이 많을 경우 느린 쿼리 로그에서 어떤 문을 최적화해야 하는지 확인할 수 있습니다.
바이너리 로그(binary_log): 간단히 말해서, 바이너리 로그는 MySQL 업데이트 작업을 기록합니다. 바이너리 로그에는 모든 업데이트가 포함되므로 데이터베이스를 최대한 데이터베이스 오류 지점으로 복원하는 것이 주요 목적입니다. 백업 후.
세 가지 유형의 로그는 서로 다른 기능을 갖고 있으며 서로 다른 구성 방법이 필요합니다. 여기에서는 먼저 일반적인 오류 로그의 구성 방법에 대해 설명하고 나머지 두 가지 로그는 나중에 추가할 예정입니다.
Oracle의 경고와 마찬가지로 MySQL의 오류 로그는 오류 정보를 기록하는 데 사용되지만 오류는 오류 정보뿐만 아니라 서비스 프로세스에 대한 오류 정보도 기록됩니다. mysqld 프로세스는 일부 테이블을 자동으로 확인하거나 복구해야 함을 발견하면 관련 정보를 로그에 표시합니다.
1. 구성 파일 /etc/my.cnf
를 찾습니다. 찾을 수 없으면 find / -type f -name 'my.cnf'
전역 검색을 수행합니다. 그게 다입니다/etc/my.cnf
,如果找不到find / -type f -name 'my.cnf'
全局查找即可
2、将错误日志参数写入配置文件
[mysqld_safe]log-error=/var/lib/mysql/mysql.err
3、另一种方法
MySQL在命令行启动时,可以添加日志的加载参数--log-output
,其中--log-output
还有三种可选参数来制定日志文件输出方式:
- TABLE:将日志记录至数据库表中
- FILE:将日志记录在文件中
- NONE:不记录
启用错误日志,并记录日志文件到数据库表和日志文件中: <br/>--log-output=TABLE,FILE --error_log
启用慢查询日志和普通查询日志,并将它们的日志记录在表中:--log-output=TABLE --general_log --slow_query_log
启用慢查询日志,记录到日志文件中,并制定输出路径:--log-output=FILE --slow_query_log --slow_query_log_file=/var/lib/mysql/- mysql_slow.log
mysql> show variables like 'log_error'; +---------------+---------------------+| Variable_name | Value | +---------------+---------------------+| log_error | /var/log/mysqld.log | +---------------+---------------------+1 row in set (0.00 sec) [root@localhost mysql]# tailf /var/log/mysqld.log 2017-08-07T12:32:54.258884Z 0 [Note] IPv6 is available. 2017-08-07T12:32:54.258892Z 0 [Note] - '::' resolves to '::'; 2017-08-07T12:32:54.258908Z 0 [Note] Server socket created on IP: '::'. 2017-08-07T12:32:54.259622Z 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool 2017-08-07T12:32:54.260814Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170807 8:32:54 2017-08-07T12:32:54.266749Z 0 [Note] /usr/sbin/mysqld: ready for connections. Version: '5.7.19' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) 2017-08-07T12:32:54.266772Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check. 2017-08-07T12:32:54.266774Z 0 [Note] Beginning of list of non-natively partitioned tables 2017-08-07T12:32:54.318211Z 0 [Note] End of list of non-natively partitioned tables
MySQL이 명령줄에서 시작되면 로그 로딩 매개변수 --log-output
를 추가할 수 있습니다. > 그 중 --log-output
에는 로그 파일 출력 방법을 지정하는 세 가지 선택적 매개 변수도 있습니다.
🎜--log-output=TABLE,FILE --error_log
🎜 🎜🎜🎜 느린 쿼리 로그와 일반 쿼리 로그를 활성화하고 해당 로그를 테이블에 기록합니다: --log-output=TABLE --general_log --slow_query_log
🎜🎜🎜🎜느린 쿼리 로그 활성화, 기록 파일을 로그하고 출력 경로를 지정합니다: --log-output=FILE --slow_query_log --slow_query_log_file=/var/lib/mysql/- mysql_slow.log
🎜🎜🎜🎜설정이 성공적으로 완료되면, 보기 입력: 🎜rrreee위 내용은 MySQL의 error_log 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!