>데이터 베이스 >MySQL 튜토리얼 >Linux는 mysqld_multi를 사용하여 단일 시스템에서 여러 MySQL 인스턴스를 시작합니다.

Linux는 mysqld_multi를 사용하여 단일 시스템에서 여러 MySQL 인스턴스를 시작합니다.

黄舟
黄舟원래의
2017-03-10 11:13:231025검색

1. 배경 설명

예전에는 mysql을 사용할 때 하나의 mysql 스키마만 사용하거나 여러 스키마를 사용하는 경우가 많았으나 일반적으로 동일한 데이터베이스 인스턴스, 즉 같은 포트.
mysql 2머신 양방향 핫 백업에서는 머신 A의 myql 스키마(가칭 A)를 핫 백업(mysql 복제)의 마스터 노드로 사용해야 하고, 백업 mysql 스키마(가칭 A)를 마스터 노드로 사용해야 합니다. B) 다른 머신 B에 존재합니다. 그런 다음 양방향 핫 백업에서는 B도 마스터로 구성하고 A는 슬레이브로 구성해야 합니다. 직설적으로 말하면 핫 백업이 두 번 구성됩니다. 이제 머신 A의 핫 백업이 완료되었습니다. 그리고 B의 차례입니다. 머신 B에도 마스터로 구성해야 하는 mysql 스키마(C)가 있고 백업 스키마는 머신 A에 배치되어 있다고 언급했지만 여기에 문제가 있습니다. 백업 mysql 스키마(B)가 방금 핫 스탠바이를 구성할 때 mysql로 ​​구성되었습니다. 역할이 바인딩됩니다. 이때 C가 마스터로 구성되면 B의 이전 구성이 덮어쓰기되고 C의 백업 데이터베이스(D)가 머신 A에서 마스터로 구성되면 A가 마스터로 구성됩니다. 작업이 다루어졌습니다.
따라서 이 프로세스에서는 스키마 A와 B의 양방향 상시 대기 구성이 두 시스템의 기본 포트 3306에서 각각 완료됩니다. 스키마 C와 D의 양방향 상시 대기를 구성할 때 다음을 수행해야 합니다. 두 시스템에 각각 스키마 C와 D의 양방향 상시 대기를 구성합니다. 다음은 여러 mysql 인스턴스를 시작하는 방법을 설명합니다.

2. 구현 단계

(1) 기본적으로 mysql이 설치되어 있고 기본 구성이 구현되어 있습니다.

(2) my.cnf 구성(이 기사와 관련된 구성만 작성)

[mysqld_multi]

mysqld = /opt/mysql/server-5.6/bin/mysqld_safe #根据自己的mysql目录配置
mysqladmin = /opt/mysql/server-5.6/bin/mysqladmin

[mysqld1]
port = 3307
socket = /tmp/mysql.sock1
pid-file   = /opt/mysql/server-5.6/data3307/cloud3.pid3
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3307
log-bin=mysql1-9003-bin
user=cloud1

[mysqld2]
port = 3308
socket = /tmp/mysql.sock2
pid-file   = /opt/mysql/server-5.6/data3308/cloud3.pid2
basedir=/opt/mysql/server-5.6
datadir=/opt/mysql/server-5.6/data3308
log-bin=mysql2-9003-bin
user=cloud1

(3) 데이터베이스 디렉터리 초기화(구성에 따라 디렉터리 지정)

cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3307 --user=cloud1
cd /opt/mysql/server-5.6/;./scripts/mysql_install_db --datadir=/opt/mysql/server-5.6/data3308 --user=cloud1

초기화 성공하면 확인 메시지가 표시됩니다. 그렇지 않으면 데이터베이스 디렉터리에 권한이 있는지 확인하세요.

(4) 인스턴스 시작

mysqld_multi를 시작하려면 다음 매개변수를 사용하세요. (참고: 이 명령은 mysql의 bin 디렉터리에 있습니다.)

 mysqld_multi [options] [GNR[,GNR]...]

실행하려는 작업을 시작, 중지 및 보고합니다. 옵션 다음에 나오는 GNR 목록과 구별하여 단일 서비스 또는 여러 서비스에 대한 작업을 지정할 수 있습니다. GNR 목록을 지정하지 않으면 mysqld_multi는 모든 서비스에서 옵션 파일에 따라 동작합니다.
각 GNR의 값은 그룹의 시퀀스 번호 또는 그룹의 시퀀스 번호 범위입니다. 이 항목의 값은 그룹 이름의 마지막 숫자여야 합니다. 예를 들어 그룹 이름이 mysqld17이면 이 항목의 값은 17입니다. 범위를 지정하는 경우 "-"(대시)를 사용하여 두 숫자를 연결합니다. GNR의 값이 10-13이면 mysqld10 그룹을 mysqld13 그룹으로 참조합니다.

mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1-2
或者
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 1
mysqld_multi --defaults-file=/opt/mysql/server-5.6/my.cnf start 2

(5) 비밀번호를 변경하고 로그인

mysqladmin -u root -p -P 3307 -S /tmp/mysql.sock1 password  //刚开始默认没有密码,如果要输入密码,直接回车
mysql -u root -p -P 3307 -S /tmp/mysql.sock1

위 내용은 Linux는 mysqld_multi를 사용하여 단일 시스템에서 여러 MySQL 인스턴스를 시작합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.