>  기사  >  데이터 베이스  >  mysqld_multi 배포 단일 머신에 대한 자세한 설명

mysqld_multi 배포 단일 머신에 대한 자세한 설명

php中世界最好的语言
php中世界最好的语言원래의
2018-03-23 17:08:192062검색

이번에는 독립형 머신에 mysqld_multi를 배포하는 방법에 대해 자세히 설명하겠습니다. 독립형 머신에 mysqld_multi를 배포할 때 주의사항은 무엇인가요? 다음은 실제 사례입니다.

머리말

하드웨어 수준의 발전과 함께 멀티 코어 Linux 시스템이 일반적인 추세가 된 반면 mysql은 여러 스레드가 있는 단일 프로세스이므로 멀티 프로세스의 활용이 중요하다는 것을 누구나 경험했을 것입니다. 그리 높지는 않습니다. 버전 5.6은 이 점에서 많이 개선되었지만 100%에 도달하지 않았으므로 시스템 리소스를 최대한 활용하기 위해 mysql에는 자체 보완 기능이 있습니다. 즉, 여러 인스턴스를 배포할 수 있습니다. 포트당 인스턴스.

mysqld_multi는 동일한 시스템에서 실행되는 여러 mysqld 프로세스를 관리하도록 설계되었으며, 이 프로세스는 서로 다른 소켓 파일을 사용하고 서로 다른 포트에서 수신합니다. mysqld_multi는 이러한 mysqld 프로세스의 상태를 일괄적으로 시작, 종료 또는 보고할 수 있습니다.

아래에서는 할 말이 많지 않으니, 자세한 소개를 살펴보겠습니다.

1. MySQL 컴파일installation:

cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 
tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql
useradd mysql
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld

2. 첫 번째 멀티 인스턴스 3307

2.1 디렉터리 만들기:

mkdir /usr/local/mysql3307
chown -R mysql.mysql /usr/local/mysql3307/
mkdir -p /data/mysql3307
chown -R mysql.mysql /data/mysql3307
mkdir -p /home/data/mysql3307/binlog
chown -R mysql.mysql /home/data/mysql3307

2. 2 프로필

[root@zhdya01 ~]# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
log =/var/log/mysqld_multi.log
[mysqld1]
socket = /usr/local/mysql3307/mysql.sock
port = 3307
pid-file = /usr/local/mysql3307/mysql.pid
datadir = /data/mysql3307
log_bin=/home/data/mysql3307/binlog
server-id = 1
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

2.3 데이터베이스 초기화

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3307

3. 두 번째 멀티 인스턴스 3308

3.1 디렉토리 생성:

mkdir /usr/local/mysql3308
chown -R mysql.mysql /usr/local/mysql3308/
mkdir -p /data/mysql3308
chown -R mysql.mysql /data/mysql3308
mkdir -p /home/data/mysql3308/binlog
chown -R mysql.mysql /home/data/mysql3308

3.2 구성 파일

[root@zhdya01 ~]# vim /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin =/usr/local/mysql/bin/mysqladmin
log =/var/log/mysqld_multi.log
[mysqld1]
socket = /usr/local/mysql3307/mysql.sock
port = 3307
pid-file = /usr/local/mysql3307/mysql.pid
datadir = /data/mysql3307
log_bin=/home/data/mysql3307/binlog
server-id = 1
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0
[mysqld2]
socket = /usr/local/mysql3308/mysql.sock
port = 3308
pid-file = /usr/local/mysql3308/mysql.pid
datadir = /data/mysql3308
log_bin=/home/data/mysql3308/binlog
server-id = 2
innodb_buffer_pool_size = 128M
innodb_flush_log_at_trx_commit = 0

3.3 데이터베이스 초기화

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3308

four , 여러 인스턴스 시작

/etc/init.d/mysqld start
mysqld_multi --defaults-extra-file=/etc/my.cnf start 1,2
[root@zhdya01 bin]# !net
netstat -lntp -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address  Foreign Address  State PID/Program name 
tcp 0 0 0.0.0.0:22  0.0.0.0:*  LISTEN 1241/sshd  
tcp 0 0 127.0.0.1:25  0.0.0.0:*  LISTEN 2087/master  
tcp6 0 0 :::3306   :::*   LISTEN 4406/mysqld  
tcp6 0 0 :::3307   :::*   LISTEN 4197/mysqld  
tcp6 0 0 :::3308   :::*   LISTEN 3359/mysqld  
tcp6 0 0 :::8080   :::*   LISTEN 2222/java  
tcp6 0 0 :::22   :::*   LISTEN 1241/sshd  
tcp6 0 0 ::1:25   :::*   LISTEN 2087/master

5. 시작 상태 확인

[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running

6. 여러 인스턴스 중지

[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/my.cnf stop 1,2
[root@zhdya01 bin]# mysqld_multi --defaults-extra-file=/etc/my.cnf report
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running

7. 각각 mysql 인스턴스에 로그인

아아아아

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 자료:

하나의 SQL 문으로 다양한 데이터베이스를 쿼리하는 방법

Bootstrap에서 테이블을 조작하는 방법

작은 프로그램에 대한 단순화된 콜백을 약속합니다

위 내용은 mysqld_multi 배포 단일 머신에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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