MariaDB Log 확인하기
데이터 적재 작업을 하던 중 문득 실무에서 일할 때 에러가 발생하면 종종 error log를 찾아봤던 생각이 나서 mariaDB Log를 확인하고 싶어졌다. 그 당시에는 log파일에 대한 생성 설정이나 경로를 미리 잡아뒀기 때문에 필자는 log 저장위치에 가서 확인만 하면 됐다. 이번에는 내가 직접 log파일을 관리해보고자 한다.
우선 mariaDB의 datadir 설정값부터 찾아봐야 했다. datadir이란, MariaDB 운영중에 생성하는 파일들의 default 위치를 뜻한다. ec2 서버에 접속을 해서 mariadb에 접속해보자.
sudo mysql -u root -p
이제 datadir을 찾는 쿼리를 날려준다.
show variables like 'data%';
/var/lib/mysql 경로를 확인했고 다음은 general log파일의 경로를 찾아보자
ip주소명으로 저장된 파일이 확인된다. 이제 default 경로에 가서 해당 파일을 찾으면 되는데 파일이 없었다..
구글링을 해보니 general_log은 default로 비활성화 되어있어서 옵션을 활성화로 변경해줘야한다.
set global general_log=1
음.. 아까 OFF였던 값이 ON으로 변경된것을 확인 할 수 있다.
이제 /var/lib/mysql 경로에서 log 파일을 읽어보려했는데 permission 에러가 났다. 접근 하려면 root 권한이 필요해보여서 su root 로 user를 변경해준 뒤 확인해봤다.
내가 날렸던 쿼리들이 정상적으로 보인다.
이번에는 error 로그를 설정해보자
error로그는 테이블의 손상이나 DB 시작과 중지 등 DB가 작동하는 도중에 발생하는 로그를 저장한다. MariaDB에서는 기본적으로 error로그 파일을 생성해주지 않으므로 mariadb의 설정 파일을 찾아서 직접 만들어 줘야한다.
설정 파일은 주로 '/etc/my.cnf' 또는 '/etc/mysql/my.cnf'에 위치한다.
필자는 /etc/mysql/my.cnf 이 경로에서 파일을 찾을 수 있었다. 이제 파일을 찾았으니 수정해주면 된다.
vi 편집을 사용하는데 my.cnf파일이 root 권한으로 되어 있어서
sudo vi /etc/mysql/my.cnf
명령어로 수정해야했다.
추가할 내용은
[mysqld]
log_error=/var/log/mysql/error.log
이 부분이다 . /var/log/mysql경로에 error.log파일을 생성하라는 의미이다.
내용추가를 완료했으면 :wq 명령어로 저장한 뒤 변경된 설정을 적용하기 위해 MariaDB를 재시작해야한다.
sudo systemctl restart mariadb
이제 error.log파일을 열어보면
이런식으로 에러 로그를 확인 할 수 있다.