운영하던 mysql 서버의 root 비밀번호를 잃어버려서 root 비밀번호를 초기화 한 적이 있다. 구글링해서 찾은 초기화 방법은 다음과 같다
safe_mysqld –user=root –skip-grant-tables &
문제는 굵게 표시한 “–user=root” 부분. 최근에는 mysql을 root 권한으로 구동하지 않고 mysql 이라는 계정으로 구동하는데, 저렇게 –user=root 옵션을 쓰면 안 된다. 이렇게 하면 mysql 의 데이터 디렉토리(data)에 생기는 로그 파일인 mysql-bin.000001 (숫자)파일이 평소에 mysql을 구동하는 계정이 아닌 root 계정 것으로 생긴다. 그래서 mysql 을 구동할 때
Starting MySQL.Manager of pid-file quit without updat[실패]
이런 오류가 나면서 가동이 안 된다. 이런 일을 예방하려면 –user=root 가 아니라 mysql 서버를 구동하는 계정 이름(가령, –user=mysql 등)으로 위 절차를 실행해야 한다. 이미 그런 일을 벌였다면 문제를 일으키고 있는 로그 파일의 소유자를 mysql 을 구동하는 계정으로 만들어 줘야 한다.
만약 mysql 의 데이터 디렉토리가 /usr/local/mysql/data 라면 다음과 같이 해보자.
ls -al /usr/local/mysql/data
만약 권한이 없다고 한다면
sudo ls -al /usr/local/mysql/data
라고 하면 된다(root 권한으로 ls -al 하는 것).
-rw-rw---- 1 mysql mysql 86537 3월 15 23:34 mysql-bin.000001 -rw-rw---- 1 mysql mysql 67354804 5월 4 21:36 mysql-bin.000002 -rw-rw---- 1 mysql mysql 254 5월 4 21:42 mysql-bin.000003 -rw-rw---- 1 root root 16786292 5월 5 22:31 mysql-bin.000004 -rw-rw---- 1 mysql mysql 76 5월 4 21:50 mysql-bin.index drwx------ 2 mysql mysql 4096 3월 15 16:26 test
잘 보면 다른 파일과는 달리 혼자 다른 파일이 보인다. 저 녀석을 mysql 을 구동하는 계정(나는 mysql)의 것으로 만들어주면 된다.
sudo chown mysql.mysql data/mysql-bin.000004
이러면
-rw-rw---- 1 mysql mysql 86537 3월 15 23:34 mysql-bin.000001 -rw-rw---- 1 mysql mysql 67354804 5월 4 21:36 mysql-bin.000002 -rw-rw---- 1 mysql mysql 254 5월 4 21:42 mysql-bin.000003 -rw-rw---- 1 mysql mysql 16786292 5월 5 22:31 mysql-bin.000004 -rw-rw---- 1 mysql mysql 76 5월 4 21:50 mysql-bin.index drwx------ 2 mysql mysql 4096 3월 15 16:26 test
이렇게 된다. 이젠 mysql 서버가 잘 가동될 것이다.
'리눅스 > mysql' 카테고리의 다른 글
DB 계정생성및 권한부여 패스워드 변경 (0) | 2014.11.23 |
---|---|
mysql 디비 계정생성및 권한설정 (0) | 2014.11.23 |
mysql 패스워드 분실시 (0) | 2014.11.23 |
rsync의 옵션 설명 (0) | 2014.11.23 |
mysqldump 오류 (0) | 2014.11.23 |