> 운영 및 유지보수 > Docker > docker가 mysql에 연결할 수 없으면 어떻게 해야 합니까?

docker가 mysql에 연결할 수 없으면 어떻게 해야 합니까?

PHPz
풀어 주다: 2023-04-18 10:00:49
원래의
5894명이 탐색했습니다.

Docker를 사용하여 MySQL 데이터베이스를 구축할 때 때때로 MySQL에 연결할 수 없는 문제가 발생할 수 있습니다. 이는 네트워크 문제, 구성 문제 또는 기타 문제로 인해 발생할 수 있습니다. 이 기사에서는 이 문제를 해결하는 방법에 대해 설명합니다.

1. 네트워크 연결을 확인하세요

먼저 Docker 컨테이너와 로컬 호스트 간의 네트워크 연결이 정상적인지 확인해야 하며 이는 ping 명령을 통해 감지할 수 있습니다. 로컬 호스트에서 터미널을 열고 다음 명령을 실행합니다.

$ ping <docker容器IP>
로그인 후 복사

그 중 는 docker discover 명령을 사용하여 얻을 수 있습니다.

정상적으로 ping이 가능하면 네트워크 연결이 정상입니다. ping이 불가능하면 네트워크 오류를 해결해야 합니다.

2. MySQL 컨테이너 구성을 확인하세요

네트워크 연결이 정상이면 MySQL 컨테이너 구성 파일을 확인해야 합니다. 다음 명령을 실행합니다.

$ docker exec -it <container ID> /bin/bash
$ cd /etc/mysql
$ cat my.cnf
로그인 후 복사

여기서 는 MySQL 컨테이너의 ID입니다.

my.cnf 파일의 구성, 특히 네트워크 설정이 올바른지 확인하세요.

3. MySQL 사용자를 생성하고 권한을 부여합니다.

MySQL 컨테이너의 구성이 정상이라면 해당 MySQL 사용자가 생성되고 권한이 부여되었는지 확인해야 합니다.

MySQL 컨테이너에서 다음 명령을 실행합니다.

$ mysql -u root -p
로그인 후 복사

MySQL 콘솔에 들어가려면 루트 비밀번호를 입력하세요.

사용자를 생성하려면 다음 SQL 문을 실행하세요.

CREATE USER 'username'@'%' IDENTIFIED BY 'password';
로그인 후 복사

여기서 'username'과 'password'는 각각 생성하려는 사용자 이름과 비밀번호입니다.

그런 다음 사용자에게 권한을 부여합니다.

GRANT ALL ON *.* TO 'username'@'%';
로그인 후 복사

여기서 'username'은 방금 생성한 사용자 이름입니다.

마지막으로 다음 명령을 실행하여 변경 사항을 저장하고 MySQL 콘솔을 종료합니다.

FLUSH PRIVILEGES;
EXIT;
로그인 후 복사

4. 방화벽 설정을 확인하세요.

여전히 MySQL에 연결할 수 없다면 방화벽 설정 문제 때문일 수 있습니다. MySQL 연결을 차단하는 방화벽이 있는지 확인해야 합니다.

로컬 호스트에서 다음 명령을 실행하여 방화벽이 포트를 점유하고 있는지 확인하세요.

$ sudo netstat -tunlp | grep <MySQL容器端口>
로그인 후 복사

그 중 는 MySQL 서비스에서 노출하는 포트 번호입니다.

포트가 이미 사용 중인 경우 포트를 활성화해야 합니다. Ubuntu 시스템을 예로 들면, 다음 명령을 실행하여 포트를 엽니다.

$ sudo ufw allow <MySQL容器端口>/tcp
로그인 후 복사

그 중 는 MySQL 서비스에서 노출하는 포트 번호입니다.

다른 운영체제인 경우 해당 운영체제 설정에 따라 포트를 열어야 합니다.

5. MySQL 컨테이너를 다시 시작하세요

마지막으로 위의 네 단계를 수행해도 문제가 해결되지 않으면 MySQL 컨테이너를 다시 시작해 보세요.

다음 명령을 사용하여 MySQL 컨테이너를 다시 시작할 수 있습니다.

$ docker restart <container ID>
로그인 후 복사

여기서 는 MySQL 컨테이너의 ID입니다.

요약

Docker MySQL에 연결할 수 없는 문제는 여러 가지 이유로 발생할 수 있으며, 하나씩 제거해야 합니다. 먼저 네트워크 연결이 정상인지 확인한 후 MySQL 컨테이너의 구성을 확인하고 MySQL 사용자를 생성하여 권한을 부여한 후 방화벽 설정을 확인한 후 마지막으로 MySQL 컨테이너를 다시 시작해 보세요. 위의 단계로 문제가 해결되지 않으면 다른 MySQL 미러로 변경하거나 다른 솔루션을 찾는 것이 좋습니다.

위 내용은 docker가 mysql에 연결할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿