環境設定:
ノード名 | IPアドレス |
---|---|
node01 | 192.168.10.207 |
node02 | 192.168.10.167 |
基本的な環境設定:
- 削除firewalld
yum remove firewalld -y
- 閉じるのselinux
sudo vim /etc/selinux/config
以下を変更します。
SELINUX =無効
- インストールiptablesの-サービス、bashの補完
yum install -y iptables-services bash-completion
systemctl enable iptables
systemctl start iptables
iptables -F
service iptables save
systemctl restart iptables
- ホストのホスト名解決を追加します
cat /etc/hosts
192.168.10.207 node01
192.168.10.167 node02
- 追加希望mariadb iptablesのルールセット
iptables -A INPUT -p tcp -m multiport --dport 3306,4567,4444 -j ACCEPT
クラスタ展開ガレラ
1.ダウンロードし、最新のドッキングウィンドウのミラーmariadb 10.3.10
docker pull mariadb:10.3.10
2. mariadbプロファイルとmariadbデータを保存するために、ディレクトリデータベースのニーズを作成します。
mkdir -p /opt/mariadb/conf
mkdir -p /opt/mariadb/data
ノード1ノード操作:
1.最初の実行mariadb、実行ノードnode01の目的。ホストにコピーMariaDBの設定ファイルは/ opt / mariadb / dataディレクトリ内のデータベースファイルを生成
ドッカーRUNを-d
-name MariaDB-amdha01
-vは/ opt / mariadb /データ:の/ var / libに/ MySQLの
-e MYSQL_ROOT_PASSWORD = 123456
MariaDB:10.3.10
2.コピーMariaDBコンテナの設定ファイルは/ opt / mariadb / confにディレクトリへ
docker cp mariadb-node01:/etc/mysql /opt/mariadb/conf
3. [コンテナへとリモート着陸与えられたMySQLの権限データベースMySQLデータベースコマンドの動作に
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '' WITH GRANT OPTION;
4.終了コンテナと(母親が必要なの/ opt / mariadb /データディレクトリデータファイルにデータベースを生成することである前に、コンテナが削除されます)コンテナを削除
docker sotp mariadb-node01 && docker rm mariadb-node01
5.コピー修正は/ opt / mariadb / my.cnfの設定ファイルディレクトリのconf [ガレラ]構成セクション
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.10.207:4567,192.168.10.167:4567
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=192.168.10.207
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
前記第2のブートmariadb容器node01ノード、-wsrep新しいクラスタパラメータを追加する最初のクラスタデータベース必要で始まります
docker run -d \
--name mariadb-node01 \
-p 3306:3306 \
-p 4567:4567 \
-p 4444:4444 \
-v /opt/mariadb/conf:/etc/mysql \
-v /opt/mariadb/data/:/var/lib/mysql \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-e TIMEZONE=Asia/Shanghai \
mariadb:10.3.10 --wsrep-new-cluster
node02でノード操作
1.最初の実行mariadb、実行ノードとnode02の目的。ホストにコピーMariaDBの設定ファイルは/ opt / mariadb / dataディレクトリ内のデータベースファイルを生成します
docker run -d \
--name mariadb-node02 \
-v /opt/mariadb/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mariadb:10.3.10
/ opt / mariadb / confにディレクトリをコピーmariadbコンテナの設定ファイル
docker cp mariadb-node02:/etc/mysql /opt/mariadb/conf
容器へと遠隔着陸所与のMySQL権限データベースMySQLデータベースコマンドの動作に3
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '' WITH GRANT OPTION;
4.終了コンテナと(母親が必要なの/ opt / mariadb /データディレクトリデータファイルにデータベースを生成することである前に、コンテナが削除されます)コンテナを削除
docker sotp mariadb-node02 && docker rm mariadb-node02
5.コピー修正は/ opt / mariadb / my.cnfの設定ファイルディレクトリのconf [ガレラ]構成セクション
[galera]
# Mandatory settings
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address=gcomm://192.168.1010.207:4567,192.168.10.167:4567
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
bind-address=192.168.10.167
wsrep_slave_threads=1
innodb_flush_log_at_trx_commit=0
前記第2のブートmariadb容器node01ノード、-wsrep新しいクラスタパラメータを追加する最初のクラスタデータベース必要で始まります
docker run -d \
--name mariadb-node02 \
-p 3306:3306 \
-p 4567:4567 \
-p 4444:4444 \
-v /opt/mariadb/conf:/etc/mysql \
-v /opt/mariadb/data/:/var/lib/mysql \
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \
-e TIMEZONE=Asia/Shanghai \
mariadb:10.3.10 --wsrep-new-cluster
ガレラクラスタが正常に動作していることを確認し
show status like '%wsrep%';