MySQL에서 로그 파일을 보는 방법
저는 Mysql 서버가 로그 파일을 생성하여 언제 어떤 쿼리를 실행할지 등 모든 액티비티를 기록합니다.
내 시스템의 어디에 있는지 말해 줄 수 있는 사람?어떻게 읽어요?
기본적으로는 다른 입력 [두 날짜 사이의 백업]으로 데이터베이스를 백업해야 하기 때문에 여기서 로그 파일을 사용해야 한다고 생각합니다.그래서 이 작업을 하고 싶습니다.
사용자명이나 패스워드등의 기밀 정보가 로그에 기록될 가능성이 있기 때문에, 이 로그는 어떻게든 시큐러티로 할 필요가 있다고 생각합니다만, 보이지 않고, 시큐러티로 할 수 있을까요?
시스템에 대한 루트 액세스 권한이 있는데 로그는 어떻게 볼 수 있습니까?
/var/log/mysql.log를 열려고 하면 비어 있습니다.
설정 파일은 다음과 같습니다.
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0
[mysqld]
log = /var/log/mysql/mysql.log
binlog-do-db=zero
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
general_log_file = /var/log/mysql/mysql.log
general_log = 1
이 기능을 유효하게 하는 간단한 방법은 다음과 같습니다.mysql에서는 프로젝트 개발 중에 가장 필요한 로그가 3개 있는 경우가 많습니다.
The Error Log
서버 실행 중 발생하는 오류(서버 시작 및 중지)에 대한 정보가 포함되어 있습니다.The General Query Log
이것은 mysqld가 하고 있는 일반적인 기록입니다(접속, 절단, 쿼리).The Slow Query Log
§ () "됩니다. § T는 (이름으로 나타나듯이) "저속" SQL문으로 구성됩니다.
디폴트로는, MYSQL 에서는 로그 파일은 유효하게 되어 있지 않습니다.는 syslog 「」 「」 「syslog」 「」)에 표시됩니다./var/log/syslog
를 참조해 주세요.
이 기능을 유효하게 하려면 , 다음의 순서에 따릅니다.
1단계: 이 파일(/etc/mysql/conf.d/mysqld_safe_syslog.cnf)로 이동하여 해당 행을 삭제 또는 코멘트합니다.
스텝 2: mysql conf file로 이동합니다)./etc/mysql/my.cnf
오류 로그를 사용하려면 다음을 추가하십시오.
[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log
[mysqld]
log_error=/var/log/mysql/mysql_error.log
일반 조회 로그를 실행하려면 다음을 추가하십시오.
general_log_file = /var/log/mysql/mysql.log
general_log = 1
느린 조회 로그를 사용하려면 다음을 추가하십시오.
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
스텝 3: 파일을 저장하고 다음 명령을 사용하여 mysql을 재시작합니다.
service mysql restart
시 클라이언트 「」 「mysql」 「」)에 합니다.mysql -u root -p
)와 ( )을 줍니다.
SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';
마지막으로 한 가지 언급하고 싶은 것은 블로그에서 이 글을 읽었다는 것입니다.감사해요.저는 좋아요.
블로그에 접속하려면 여기를 클릭하세요.
MySQL 로그는 다음과 같은 글로벌 변수에 의해 결정됩니다.
log_error
오류 메시지 로그의 경우general_log_file
일반 쿼리 로그 파일(에 의해 활성화된 경우)의 경우)general_log
slow_query_log_file
느린 쿼리 로그 파일(에 의해 활성화된 경우)slow_query_log
설정 및 위치를 표시하려면 다음 셸 명령을 실행합니다.
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
오류 로그 값을 인쇄하려면 단말기에서 다음 명령을 수행합니다.
mysql -e "SELECT @@GLOBAL.log_error"
오류 로그 파일의 내용을 실시간으로 읽으려면 다음을 수행합니다.
sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")
주의: 종료 시 - C를 누릅니다.
일반 로그가 활성화되어 있는 경우 다음을 수행합니다.
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
「」를 mysql
액세스에 , 「」를 추가합니다.-p
★★★★★★★★★★★★★★★★★」-pMYPASS
파라미터를 지정합니다. , 「기억하기 위해서」로 합니다.~/.my.cnf
[client]
user=root
password=root
그래서 다음에 기억될 거예요.
mysql에서 쿼리 로깅을 활성화해야 합니다.
/etc/my.cnf 편집
[미스터리]log=/tmp/mp.log
컴퓨터 또는 mysqld 서비스를 다시 시작합니다.
서비스 mysqld 재시작
phpmyadmin/mysql/mysql 콘솔을 사용하는 응용 프로그램을 열고 쿼리를 실행합니다.
cat /tmp/mysql.log
가 표시됩니다.
MySQL 참조 매뉴얼:
기본적으로는 모든 로그 파일이 데이터 디렉토리에 생성됩니다.
마크를 켜주세요./var/lib/mysql
더입니니다다
(LAMP가 설치되어 있습니다) /etc/mysql/my.cnf 파일에서 [mysqld]섹션에 코멘트된 행이 있습니다.
general_log_file = /var/log/mysql/mysql.log
general_log = 1
이 파일을 슈퍼 유저로서 열어야 했습니다.단말기는 다음과 같습니다.
sudo geany /etc/mysql/my.cnf
(gedit이나 VI 대신 Geany를 사용하는 것이 좋기 때문에 상관없습니다.)
코멘트를 하지 않고 파일을 저장한 후 MySQL을 재시작합니다.
sudo service MySQL restart
여러 쿼리를 실행하여 위의 파일(/var/log/mysql/mysql.log)을 엽니다.로그가 여기에 있습니다.
위의 답변 외에 mysqld 프로세스에 명령행 파라미터를 전달하여 conf 파일을 수동으로 편집하는 대신 옵션을 로깅할 수 있습니다.예를 들어 일반 로깅을 이노블로 하여 파일을 지정하려면 다음 절차를 수행합니다.
mysqld --general-log --general-log-file=/var/log/mysql.general.log
위의 다른 답변을 확인하고 있습니다.mysqld --help --verbose
파일의 FALSE가 됩니다). "conf"는 "general-log"는 "FALSE"입니다.mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
general_log ON
general_log_file /var/log/mysql.general.log
에러 로그에는, 보다 컴팩트한 구문을 사용합니다.
mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log
Loyola의 답변을 보완하기 위해 MySQL 5.1을 언급할 필요가 있습니다.log_slow_queries
는 권장되지 , "이러다"로 됩니다.slow-query-log
「」를 사용합니다.log_slow_queries
이 됩니다.service mysql restart
★★★★★★★★★★★★★★★★★」service mysql start
루트로 MySQL/MariaDB 서버 명령줄 도구 입력
- 파일 경로를 설정합니다(general.log를 원하는 파일 이름으로 바꿀 수 있습니다).
SET GLOBAL general_log_file=setvar/log/setvar/general.log';
- 로그 파일 형식 설정
SET GLOBAL log_output = 'FILE';
- 서버 일반 로그 사용
SET GLOBAL general_log = 'ON';
- 글로벌 설정 변수 설정을 확인합니다.
"general_log%"와 같은 변수 표시,
- 를 입력하십시오.
exit
MySQL 명령줄에서 벗어나 쿼리를 맞춤화하려면
tail - f / var / log / par / general . log
또는
less / var / log / log / displays / general . log
- 일반 서버 로그를 실행 중지하려면 다음과 같이 하십시오.
SET GLOBAL general_log = 'OFF';
shell> mysqladmin flush-logs
shell> mv host_name.err-old backup-directory
언급URL : https://stackoverflow.com/questions/5441972/how-to-see-log-files-in-mysql
'it-source' 카테고리의 다른 글
Java 8 Itable.ForEach()와 foreach 루프 (0) | 2022.11.29 |
---|---|
기존 데이터에 대해 MySQL에서 GUID를 생성하시겠습니까? (0) | 2022.11.29 |
던질 것으로 예상되는 비동기 테스트를 작성할 수 있습니까? (0) | 2022.11.29 |
JavaScript의 "elseif" 구문 (0) | 2022.11.29 |
설명설명 (0) | 2022.11.29 |