1. Docker는 MySQL 컨테이너를 시작하여 데이터 지속성을 달성합니다.
Docker를 사용하여 CentOS 7에서 MySQL 8.0.33을 시작하고 MySQL의 my.cnf 파일을 구성하고 MySQL 데이터 지속성을 구현하려면 다음 단계를 따르십시오.
1. Docker 설치: CentOS 7에 Docker를 설치했는지 확인합니다. 설치되지 않은 경우 공식 Docker 문서에서 제공하는 지침에 따라 설치하십시오.
2. 영구 저장소 디렉터리 생성: 데이터 지속성을 달성하기 위해 MySQL 데이터를 저장할 디렉터리를 생성합니다. 이름을 /opt/mysql_data로 지정했다고 가정해 보겠습니다. 터미널에서 다음 명령을 실행하여 디렉터리를 만듭니다.
sudo mkdir -p /opt/mysql_data
3. MySQL 이미지 가져오기: 다음 명령을 실행하여 Docker 허브에서 MySQL 8.0.33 이미지를 가져옵니다.
sudo docker pull mysql:8.0.33
4. MySQL 컨테이너 시작: 다음 명령을 실행하여 MySQL 컨테이너를 시작하고 영구 저장소 디렉터리와 사용자 지정 my.cnf 파일을 동시에 마운트합니다.
미리 새 /path/to/my.cnf 파일을 수동으로 만들어야 합니다.
----개별 요구 사항이 있기 때문에 /path/to/my.cnf 파일을 server_id=2로 설정해야 합니다(해당 요구 사항 없음, 무시할 수 있음).
도커 컨테이너 시작
sudo docker run -d --name mysql-container \
-v /opt/mysql_data:/var/lib/mysql \
-v /path/to/my.cnf:/etc/mysql/my.cnf \
-e MYSQL_ROOT_PASSWORD=123456 \
-p 3305:3306 \
mysql:8.0.33
- /opt/mysql_data를 생성한 영구 저장소 디렉터리의 경로로 바꿉니다.
- /path/to/my.cnf를 내 사용자 지정 my.cnf 파일 경로로 바꿉니다.
- your_password를 설정하려는 MySQL 루트 암호로 바꿉니다.
내 비밀번호는 123456입니다.
/path/to/my.cnf
포트는 3305입니다.
5. 구성 확인: 잠시만 기다리면 MySQL 컨테이너가 시작되고 사용자 지정 my.cnf 파일이 로드됩니다. MySQL 컨테이너에 연결하여 구성이 작동하는지 확인할 수 있습니다.
sudo docker exec -it mysql-container mysql -u root -p
이전에 설정한 비밀번호를 입력한 후 MySQL 클라이언트를 입력합니다.
비밀번호는 123456입니다.
6. MySQL 클라이언트에서 다음 명령을 실행하여 server_id 구성이 2로 설정되었는지 확인합니다.
SHOW VARIABLES LIKE 'server_id';
server_id 값이 2이면 my.cnf의 구성이 성공적으로 적용된 것입니다.
MySQL 컨테이너는 이제 server_id 값이 2인 사용자 지정 my.cnf 구성 파일을 사용하여 CentOS 7에서 지속적으로 실행됩니다.
my.cnf 파일을 수정할 때마다 변경 사항을 적용하려면 MySQL 컨테이너를 다시 시작해야 합니다.
sudo docker restart mysql-container
2. 원격 액세스를 지원하도록 MySQL 컨테이너 설정
기본적으로 Docker의 컨테이너 네트워킹은 브리지 모드를 사용하므로 컨테이너 내부의 서비스는 컨테이너의 IP 주소를 통해서만 액세스할 수 있습니다. 원격 호스트의 연결을 허용하려면 컨테이너의 방화벽 규칙을 수정해야 합니다.
1. docker-mysql 컨테이너를 입력하고 MySQL을 입력합니다.
sudo docker exec -it mysql-container mysql -u root -p
비밀번호 123456
2. 비밀번호 재설정
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
3. 권한 새로 고침
flush privileges;
4. 원격 액세스를 활성화하고 기본 암호 및 암호화 방법을 수정합니다.
alter user 'root'@'%' identified with mysql_native_password by 'root';
이제 원격으로 연결하고 서비스의 IP 주소와 포트 번호 3305, 계정 루트 암호 123456을 사용할 수 있습니다.
서버는 외부 세계에 대해 포트 3305를 열어야 함을 기억하십시오.