Docker를 사용하여 mysql을 배포할 때 시작 오류가 발생할 수 있습니다. 이 기사에서는 이러한 상황을 해결하는 방법을 자세히 설명합니다.
1. 문제 설명
Mysql은 매우 널리 사용되는 관계형 데이터베이스이고 Docker는 컨테이너 기술입니다. Docker를 사용하면 Mysql 데이터베이스를 쉽게 배포할 수 있지만 가끔 Mysql 컨테이너 시작이 실패하는 경우가 있습니다. Mysql 컨테이너를 시작하기 위해 다음 Docker 명령을 사용했을 때 시작에 실패한 것을 발견했습니다.
docker run --name mysql -e MYSQL_ROOT_PASSWORD=mypassword -d mysql:5.7
2. 문제 분석
위 명령에 따라 컨테이너를 시작할 때 -e 매개변수는 환경 변수를 지정하며, 여기서 MYSQL_ROOT_PASSWORD는 MySQL 루트 사용자의 비밀번호입니다. mysql: 5.7은 Mysql 데이터베이스의 미러 버전입니다. 그러나 때로는 컨테이너를 시작하지 못하는 경우가 있습니다. 이때, 시작 컨테이너 로그를 보면 오류의 원인을 분석할 수 있습니다.
docker logs mysql
는 MySQL 컨테이너가 시작될 때 충돌이 발생하는 것을 발견했습니다. 그러므로 우리는 오류의 원인을 찾아야 합니다.
3. 문제 해결
다음 단계를 통해 이 문제를 해결할 수 있습니다.
1. 컨테이너가 실행 중인지 확인하세요
docker ps
컨테이너가 이미 실행 중이라면 컨테이너 로그만 확인하면 됩니다.
2. 컨테이너 로그 보기
docker logs mysql
로그에서 다음 오류 메시지를 확인할 수 있습니다.
[ERROR] [MY-012144] [InnoDB] ./ibdata1 can't be opened in read-write mode [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Generic error. [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine: 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. [ERROR] [MY-010119] [Server] Aborting
오류 로그를 분석해 보면 MySQL 시작 실패의 원인이 데이터 디렉터리에 쓰기가 불가능하기 때문임을 알 수 있습니다. 이 문제를 해결하려면 데이터 디렉터리가 있는 위치를 찾아 해당 권한을 쓰기 가능으로 설정해야 합니다.
3. Mysql 컨테이너의 데이터 디렉터리 보기
docker inspect mysql | grep -i datadir
출력 결과에서 아래와 같이 Mysql 컨테이너의 데이터 디렉터리를 찾을 수 있습니다.
"DataDir": "/var/lib/mysql"
쓰기 가능하도록 권한을 설정해야 합니다. 디렉터리 권한을 보고 변경하려면 다음 명령을 사용하세요.
docker exec -it mysql bash chmod -R 777 /var/lib/mysql exit
그런 다음 컨테이너를 다시 시작할 수 있습니다.
docker start mysql
위 단계를 수행한 후 Mysql 컨테이너를 다시 시작하면 성공적으로 시작할 수 있습니다.
4. 요약
이 글에서는 Docker가 Mysql을 시작하지 못하는 문제에 대한 해결책을 제공합니다. Mysql 컨테이너가 시작되지 않으면 컨테이너 로그를 확인하여 오류의 원인을 찾아 시간 내에 해결할 수 있습니다.
위 내용은 docker가 mysql 시작 실패 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!