이번에는 독립형 머신에 mysqld_multi를 배포하는 방법에 대해 자세히 설명하겠습니다. 독립형 머신에 mysqld_multi를 배포할 때 주의사항은 무엇인가요? 다음은 실제 사례입니다.
머리말
하드웨어 수준의 발전과 함께 멀티 코어 Linux 시스템이 일반적인 추세가 된 반면 mysql은 여러 스레드가 있는 단일 프로세스이므로 멀티 프로세스의 활용이 중요하다는 것을 누구나 경험했을 것입니다. 그리 높지는 않습니다. 버전 5.6은 이 점에서 많이 개선되었지만 100%에 도달하지 않았으므로 시스템 리소스를 최대한 활용하기 위해 mysql에는 자체 보완 기능이 있습니다. 즉, 여러 인스턴스를 배포할 수 있습니다. 포트당 인스턴스.
mysqld_multi는 동일한 시스템에서 실행되는 여러 mysqld 프로세스를 관리하도록 설계되었으며, 이 프로세스는 서로 다른 소켓 파일을 사용하고 서로 다른 포트에서 수신합니다. mysqld_multi는 이러한 mysqld 프로세스의 상태를 일괄적으로 시작, 종료 또는 보고할 수 있습니다.
아래에서는 할 말이 많지 않으니, 자세한 소개를 살펴보겠습니다.
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.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.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
/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
[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
[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
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 자료:
하나의 SQL 문으로 다양한 데이터베이스를 쿼리하는 방법
위 내용은 mysqld_multi 배포 단일 머신에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!