InnoDB: Unable to lock ./ibdata1, error: 11

증상

service mysql start 했는데 시간이 오래 걸리고 구동 실패

 

원인

MySQL 실행 로그는 /var/lib/mysql/{hostname}.err 에 남으므로 로그 확인

 

tail -f /var/lib/mysql/myhost.err

 

InnoDB: using the same InnoDB data or log files.
130822 16:28:52 InnoDB: Unable to open the first data file
InnoDB: Error in opening ./ibdata1
130822 16:28:52 InnoDB: Operating system error number 11 in a file operation.
InnoDB: Error number 11 means 'Resource temporarily unavailable'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.5/en/operating-system-error-codes.html

 

다른 MySQL 프로세스가 있어서 구동이 실패함

 

처리

  1. lsof 로 mysql 프로세스 번호 확인 (예: 2704)

    lsof -i TCP:3306

  2. 위에서 알아낸 pid 번호로  /var/lib/mysql/{honemame}.pid 파일을 생성

    echo 2704 > /var/lib/mysql/myhost.pid
  3. owner 를 mysql 계정으로 변경

    chown mysql:mysql /var/lib/mysql/myhost.pid
  4. service mysql restart 로 정상 구동 여부 확인

 

Ref