it-source

MySQL에서 로그 파일을 보는 방법

criticalcode 2022. 11. 29. 21:41
반응형

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에서 쿼리 로깅을 활성화해야 합니다.

  1. /etc/my.cnf 편집

    [미스터리]log=/tmp/mp.log
  2. 컴퓨터 또는 mysqld 서비스를 다시 시작합니다.

    서비스 mysqld 재시작
  3. phpmyadmin/mysql/mysql 콘솔을 사용하는 응용 프로그램을 열고 쿼리를 실행합니다.

  4. 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 서버 명령줄 도구 입력

  1. 파일 경로를 설정합니다(general.log를 원하는 파일 이름으로 바꿀 수 있습니다).

SET GLOBAL general_log_file=setvar/log/setvar/general.log';

  1. 로그 파일 형식 설정

SET GLOBAL log_output = 'FILE';

  1. 서버 일반 로그 사용

SET GLOBAL general_log = 'ON';

  1. 글로벌 설정 변수 설정을 확인합니다.

"general_log%"와 같은 변수 표시,

이렇게 하면 다음과 같은 결과를 얻을 수 있습니다.

  1. 를 입력하십시오.exitMySQL 명령줄에서 벗어나 쿼리를 맞춤화하려면

tail - f / var / log / par / general . log

또는

less / var / log / log / displays / general . log

  1. 일반 서버 로그를 실행 중지하려면 다음과 같이 하십시오.

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

반응형