OS X에서 mysql 로그는 어디에 있습니까? local / mysql을 확인했는데 로그를

/ var / log 및 / usr / local / mysql을 확인했는데 로그를 찾을 수없는 것 같습니다. PHP 기능으로 데이터베이스 연결을 설정하는 중 오류를 해결하려고합니다.



답변

Chealion이 언급했듯이 mysql을 설치할 수있는 몇 가지 방법이 있습니다. 각각은 데이터 디렉토리 및 / 또는 로그를 다른 위치에 배치합니다. 다음 명령은 (그리고 우리에게) 어디를 볼 것인지를 잘 보여줍니다.

ps auxww|grep [m]ysqld

# Putting brackets around the first char is a `grep`+`ps` trick
# to keep it from matching its own process.
# Note: For zsh compatibility put quotes around the grep regex

해당 명령의 결과를 여기에 게시 할 수 있습니까? 광산은 다음과 같습니다.

_mysql     101   0.0  0.3   112104  13268   ??  S    12:30AM   0:13.20 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql --user=mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
root        76   0.0  0.0   600172    688   ??  S    12:30AM   0:00.02 /bin/sh /opt/local/lib/mysql/bin/mysqld_safe --datadir=/opt/local/var/db/mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid

그로부터 내 datadir이 /opt/local/var/db/mysql(MacPorts를 통해 설치 되었기 때문에) 있음을 알 수 있습니다 . 이 수업을 조금 더 진행하겠습니다 …

첫 번째 줄에서 내 데몬이 /opt/local/libexec/mysqld입니다. 를 mysqld사용 --verbose --help하여 모든 명령 행 옵션 (여기서는 중요하고 중요한 부분입니다!)의 목록을 가져 와서 도움말 출력을 확인하는 대신 mysqld를 시작한 경우 사용되는 값을 가져올 수 있습니다. 값은 컴파일 시간 구성, my.cnf파일 및 모든 명령 행 옵션의 결과입니다. 이 기능을 이용하여 다음과 같이 로그 파일이 어디에 있는지 정확하게 찾을 수 있습니다.

/opt/local/libexec/mysqld --verbose --help|grep '^log'

광산은 다음과 같습니다.

log                               /tmp/mysql.log
log-bin                           /tmp/mysql-bin
log-bin-index                     (No default value)
log-bin-trust-function-creators   FALSE
log-bin-trust-routine-creators    FALSE
log-error                         /tmp/mysql.error.log
log-isam                          myisam.log
log-queries-not-using-indexes     FALSE
log-short-format                  FALSE
log-slave-updates                 FALSE
log-slow-admin-statements         FALSE
log-slow-queries                  (No default value)
log-tc                            tc.log
log-tc-size                       24576
log-update                        (No default value)
log-warnings                      1

LO와 BEHOLD! 내 로그 파일이 완전히 비표준 위치에 보관되어 있기 때문에 전 세계의 모든 조언이 도움이되지 않았습니다! /tmp/랩톱에서 재부팅 할 때 모든 로그를 잃어 버리지 않기 때문에 실제로 보관합니다.

모두 모아서 하나의 라이너로 만들어 봅시다 :

$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'

하나의 명령을 실행하면 실행중인 mysql 인스턴스에 대한 모든 로그 목록이 표시됩니다.

즐겨!

이 Bash-Fu는 오픈 소스에 관한 모든 것에 대한 약속으로 무료로 제공되었습니다.


답변

MySQL / MariaDB 로그에는 3 가지 유형이 있습니다.

  • 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 -se "SELECT @@datadir"

오류 로그를 보려면 다음을 실행하십시오.

sudo tail -f $(mysql -Nse "SELECT @@log_error")

일반 로그를 사용하도록 설정 한 경우이를 보려면 다음을 실행하십시오.

sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")


답변

이 정보를 찾는 또 다른 방법은를 사용하는 것 lsof입니다.

  1. 활동 모니터를 사용하여의 PID 를 찾 mysql거나 ps -ef | grep mysqld찾을 수 있습니다.

  2. sudo lsof -p PID_OF_MYSQLD MySQL이 어떤 파일을 열 었는지 확인하십시오.


답변

이것을 찾으려면 잠시 시간을 보냈습니다 …이 위치를보십시오 : ‘

sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err


답변

기본적으로 모든 로그 파일은 mysqld 데이터 디렉토리에 생성됩니다.

출처 : MySQL 문서

mysqlbinlog/ usr / local / mysql / data /에서 바이너리 로그 파일을 읽는 데 사용할 수 있습니다 (설치시 바이너리는 아니 었습니다). 일부 오류는 단순히 stderr로 전달되므로 확인해야 할 수도 /var/log/system.log있습니다.


답변

다음을 사용하지 않으면 해당 로그가있는 폴더에 액세스 할 수 없습니다 sudo.

sudo ls -l "/usr/local/mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x---   4 _mysql  wheel    136 Jul 10 23:06 data

큰 로그 파일을 찾은 경우 Time Machine을 사용하는 경우 Time Machine 이란 무엇입니까?를 참조하십시오. 서버 결함.


답변

기본적으로 모든 로그 파일은 mysqld 데이터 디렉토리에 생성됩니다. 불행히도 많은 사람들이 로그 파일 (및 프로그램)을 일반적인 위치에 두지 않습니다. 나는 그들 중 하나입니다!

Navicat for MySQL을 시도 할 때까지 MySQL을 사용하여이 루틴을 직접 수행했습니다 . 나중에 Navicat Premium으로 업그레이드했습니다 . 둘 다 하나의 포괄적 인 목록에 모든 서버 변수가있는 탭을 포함하는 모니터링 도구가 있습니다. 다음은 log_error 서버 변수가있는 스크린 샷입니다.

Navicat 서버 모니터링 도구의 log_error 서버 변수

Navicat 서버 모니터링 도구의 log_error 서버 변수

목록에서 바로 변수를 설정할 수도 있습니다.

건배!