1. 설치 전 준비 사항
MySQL 여러 인스턴스를 설치하기 전에 다음 사항을 준비해야 합니다.
여러 개의 MySQL 설치 패키지를 준비하고, MySQL 공식 사이트에서 사용자 환경에 맞는 패키지를 다운로드할 수 있습니다. 웹사이트 다운로드 버전: https://dev.mysql.com/downloads/
여러 MySQL 데이터 디렉토리를 준비합니다. 다양한 MySQL 인스턴스를 지원하기 위해 다양한 디렉토리를 생성할 수 있습니다(예: /data/mysql1, /data/ mysql2 등). .
각 MySQL 인스턴스에 대해 해당 MySQL 설치 경로와 데이터 디렉터리 권한을 가진 독립적인 MySQL 사용자를 구성합니다.
2. 바이너리 패키지를 기반으로 여러 MySQL 인스턴스를 설치합니다.
다음은 바이너리 패키지를 기반으로 여러 MySQL 인스턴스를 설치하는 단계입니다.
MySQL 설치 패키지의 압축을 풀고 이름을 바꿉니다.
통합 여러 MySQL 인스턴스 설치 패키지의 압축을 푼 후 mysql1, mysql2 등과 같이 쉽게 구별할 수 있도록 다른 이름으로 이름을 바꿀 수 있습니다.
$ tar -zxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql1
$ tar -zxvf mysql-8.0.22 -linux-glibc2.12-x86_64.tar.gz
$ mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql2
데이터 디렉터리 초기화
mysql_install_db 명령을 사용하여 초기화한 후 각 MySQL 인스턴스 자체적인 독립 데이터 디렉터리가 있어야 합니다. 다음은 mysql1 및 mysql2 인스턴스를 초기화하는 명령입니다.
$ cd mysql1
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql1 --datadir=/data/mysql1
$ cd ./mysql2
$ bin/mysqld --initialize --user=mysql --basedir=/share/opt/mysql2 --datadir=/data/mysql2
각각에 대해 MySQL 서비스 설치
MySQL 인스턴스, MySQL 서비스를 설치하려면 mysqld_safe 명령을 사용해야 합니다. 다음은 mysql1 및 mysql2 인스턴스를 설치하는 명령입니다.
$ cp support-files/mysql.server /etc/init.d/mysql1
$ cp support-files/mysql.server /etc /init.d/mysql2
$ chmod +x /etc/init.d/mysql1
$ chmod +x /etc/init.d/mysql2
$ chkconfig --add mysql1
$ chkconfig --add mysql2
$ service mysql1 start
$ service mysql2 start
MySQL 인스턴스 구성
각 MySQL 인스턴스마다 독립적인 구성 파일인 my.cnf가 필요합니다. 다음은 my.cnf 파일의 예입니다:
[mysqld]
datadir=/data/mysql1
socket=/share/tmp/mysql1.sock
port = 3306
user=mysql
log-error =/data/mysql1/mysql.err
pid-file=/share/tmp/mysql1.pid
[mysqld2]
datadir=/data/mysql2
socket=/share /tmp/mysql2.sock
port = 3307
user= mysql
log-error=/data/mysql2/mysql.err
pid-file=/share/tmp/mysql2.pid
MySQL 사용자 구성
다음 명령을 사용하여 MySQL 사용자를 생성하고 해당 디렉터리 권한을 부여합니다.
$ useradd -r -g mysql -s /bin/false mysql1
$ useradd -r -g mysql -s /bin/false mysql2
$ chown -R mysql:mysql /data/mysql1
$ chown -R mysql :mysql /data/mysql2
$ chown -R mysql:mysql /share/opt/mysql1
$ chown -R mysql:mysql /share/opt/mysql2
3. Docker 컨테이너 기반 다중 MySQL 인스턴스 설치
Docker 환경 준비
먼저 서버에 Docker 환경을 설치하고 MySQL의 Docker 이미지를 가져와야 합니다. 최신 버전의 MySQL 이미지를 가져오려면:
$ docker pull mysql/mysql-server:latest
MySQL 컨테이너 시작
여러 MySQL 컨테이너를 시작하여 다중 인스턴스 요구 사항을 달성할 수 있으며 다음을 수행할 수 있습니다. 다양한 포트, 데이터 볼륨 및 구성 파일을 지정하여 다양한 인스턴스를 구별합니다. 다음은 두 개의 서로 다른 MySQL 인스턴스를 시작하는 명령의 예입니다.
$ docker run --name=mysql1 -d
-e MYSQL_ROOT_PASSWORD=your_password
-p 3306:3306
-v /data/mysql1:/var/lib/ mysql
-v /share/opt/mysql1:/etc/mysql
mysql/mysql-server:latest
$ docker run --name=mysql2 -d
-e MYSQL_ROOT_PASSWORD=your_password
-p 3307:3306
-v / data /mysql2:/var/lib/mysql
-v /share/opt/mysql2:/etc/mysql
mysql/mysql-server:latest
MySQL 인스턴스 구성
다른 컨테이너에 보관 다른 데이터 로드 각 데이터 볼륨에는 특정 구성 파일 my.cnf가 포함되어 있습니다. 다음은 my.cnf의 예시입니다.
[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[mysqld]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld. sock
port = 3306
user = mysql
log-error = /var/lib/mysql/mysql.err
pid-file = /var/run/mysqld/mysqld.pid
[mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
symbolic-links = 0
[ mysqld2]
datadir = /var/lib/mysql
socket = /var/run/mysqld/mysqld.sock
port = 3307
user = mysql
log-error = /var/lib/mysql/mysql.err
pid - file = /var/run/mysqld/mysqld.pid
다중 MySQL 인스턴스 사용
다중 MySQL 인스턴스를 구성한 후 해당 포트에 접속하여 해당 데이터베이스 인스턴스 이름을 사용하고 해당 사용자를 구성할 수 있습니다. 여러 MySQL 인스턴스를 사용하려면:
mysql -h localhost -u 사용자 이름1 -p -P 3306 -D 데이터베이스1
mysql -h localhost -u 사용자 이름2 -p -P 3307 -D 데이터베이스2
위 내용은 동일한 서버에 여러 개의 MySQL을 설치하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!