ホームページ  >  記事  >  データベース  >  mysqld_multi デプロイメント単一マシンの詳細な説明

mysqld_multi デプロイメント単一マシンの詳細な説明

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-23 17:08:192043ブラウズ

今回は、スタンドアロン マシンでの mysqld_multi のデプロイメントについて詳しく説明します。スタンドアロン マシンでの mysqld_multi のデプロイメントに関する 注意事項 について、実際のケースを見てみましょう。

はじめに

ハードウェアレベルの発展に伴い、マルチコア Linux システムが一般的なトレンドになっているのに対し、mysql は複数のスレッドを備えた単一プロセスであるため、マルチプロセスの利用が困難であることは誰もが経験しているはずです。バージョン 5.6 はこの点で大幅に改善されていますが、100% には達していないため、システム リソースを最大限に活用するために、mysql には独自の補足機能があります。つまり、複数のインスタンスをデプロイできます。ポートごとのインスタンス。

mysqld_multi は、異なるソケット ファイルを使用し、異なるポートでリッスンする、同じマシン上で実行されている複数の mysqld プロセスを管理するように設計されています。 mysqld_multi は、これらの mysqld プロセスの開始、シャットダウン、またはステータスの報告をバッチで行うことができます。

以下で言うことはあまりありません。詳細な紹介を見てみましょう。

1. MySQL のコンパイルインストール:
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 を準備します

ディレクトリを作成します:

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 プロフィールりー

2.3 データベースを初期化します

[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

3. 2 番目のマルチインスタンス 3308 を準備します

3.1 ディレクトリを作成します:

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

3.2 設定ファイル

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.3 データベースを初期化しますりー

4. 複数のインスタンスを起動します
[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

5. 起動ステータスを確認します
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql3308

6. 複数のインスタンスを停止します
/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

7. それぞれのmysqlインスタンスにログインします りー

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

1 つの SQL ステートメントで異なるデータベースにクエリを実行する方法

Bootstrap でテーブルを操作する方法

小規模なプログラムの簡素化されたコールバックを約束する

以上がmysqld_multi デプロイメント単一マシンの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。