CentOS6にMariaDB Galera Cluster 10.0をインストールする


## 2014/09/08追記&nbsp;10.0.12が消えていたので10.0.13に修正

CentOS6用のリポジトリがなんかおかしいのでrpmをダウンロードしてMariaDB Galera Cluster 10.0をインストールする。
ついでに3ノードのクラスタを構成する。

```bash:MariaDB&nbsp;Galera&nbsp;Cluster&nbsp;10.0をインストールする
# EPELリポジトリのインストール(socatがEPELリポジトリにあるため）
sudo rpm -ivh http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

# mysql-libsを消す
sudo rpm -e --nodeps mysql-libs

# 依存パッケージのインストール
sudo yum -y install perl perl-DBI lsof rsync socat

# MariaDB-Galeraのダウンロード
curl -L -O http://yum.mariadb.org/10.0/centos6-amd64/rpms/MariaDB-Galera-10.0.13-centos6-x86_64-server.rpm
curl -L -O http://yum.mariadb.org/10.0/centos6-amd64/rpms/galera-25.3.5-1.rhel6.x86_64.rpm
curl -L -O http://yum.mariadb.org/10.0/centos6-amd64/rpms/MariaDB-10.0.13-centos6-x86_64-client.rpm
curl -L -O http://yum.mariadb.org/10.0/centos6-amd64/rpms/MariaDB-10.0.13-centos6-x86_64-common.rpm
curl -L -O http://yum.mariadb.org/10.0/centos6-amd64/rpms/MariaDB-10.0.13-centos6-x86_64-compat.rpm

sudo rpm -ivh MariaDB-10.0.13-centos6-x86_64-compat.rpm MariaDB-10.0.13-centos6-x86_64-common.rpm MariaDB-10.0.13-centos6-x86_64-client.rpm MariaDB-Galera-10.0.13-centos6-x86_64-server.rpm galera-25.3.5-1.rhel6.x86_64.rpm

# MariaDBのセキュリティ設定
sudo service mysql start
sudo /usr/bin/mysql_secure_installation

Enter current password for root (enter for none): (そのままEnter)
Set root password? [Y/n] (そのままEnter)
New password: (パスワードを入力)
Re-enter new password: (パスワードを再入力)
Remove anonymous users? [Y/n] (そのままEnter)
Disallow root login remotely? [Y/n] (そのままEnter)
Remove test database and access to it? [Y/n] (そのままEnter)
Reload privilege tables now? [Y/n] (そのままEnter)

# MariaDB Galera Clusterユーザ設定
mysql -u root -p
MariaDB [(none)]> DELETE FROM mysql.user WHERE user='';
MariaDB [(none)]> GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY 'dbpass';
MariaDB [(none)]> GRANT USAGE ON *.* to sst_user@'%' IDENTIFIED BY 'dbpass';
MariaDB [(none)]> GRANT ALL PRIVILEGES on *.* to sst_user@'%';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> quit

# MariaDB Galera Clusterコンフィグ設定
sudo service mysql stop

# ノードdb1での作業
# wsrep_cluster_addressのIPアドレスリストは適時変更
# wsrep_node_addressのIPアドレスはノードのIPに変更
sudo cat >> /etc/my.cnf.d/server.cnf << EOF
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
 
datadir=/var/lib/mysql
innodb_log_file_size=100M
innodb_file_per_table
innodb_flush_log_at_trx_commit=2
 
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.11,192.168.1.12,192.168.1.13"
wsrep_cluster_name='galera_cluster'
wsrep_node_address='192.168.1.11'
wsrep_node_name='db1'
wsrep_sst_method=rsync
wsrep_sst_auth=sst_user:dbpass
 
EOF

# ノードdb2での作業
# wsrep_cluster_addressのIPアドレスリストは適時変更
# wsrep_node_addressのIPアドレスはノードのIPに変更
sudo cat >> /etc/my.cnf.d/server.cnf << EOF
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
 
datadir=/var/lib/mysql
innodb_log_file_size=100M
innodb_file_per_table
innodb_flush_log_at_trx_commit=2
 
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.11,192.168.1.12,192.168.1.13"
wsrep_cluster_name='galera_cluster'
wsrep_node_address='192.168.1.12'
wsrep_node_name='db2'
wsrep_sst_method=rsync
wsrep_sst_auth=sst_user:dbpass
 
EOF

# ノードdb3での作業
# wsrep_cluster_addressのIPアドレスリストは適時変更
# wsrep_node_addressのIPアドレスはノードのIPに変更
sudo cat >> /etc/my.cnf.d/server.cnf << EOF
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
innodb_locks_unsafe_for_binlog=1
query_cache_size=0
query_cache_type=0
bind-address=0.0.0.0
 
datadir=/var/lib/mysql
innodb_log_file_size=100M
innodb_file_per_table
innodb_flush_log_at_trx_commit=2
 
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://192.168.1.11,192.168.1.12,192.168.1.13"
wsrep_cluster_name='galera_cluster'
wsrep_node_address='192.168.1.13'
wsrep_node_name='db3'
wsrep_sst_method=rsync
wsrep_sst_auth=sst_user:dbpass
 
EOF

# ノードdb1での作業
# 最初のクラスタはオプション--wsrep-new-clusterをつけて起動する
sudo /etc/init.d/mysql start --wsrep-new-cluster

# ノードdb2, db3は通常通り起動
sudo service mysql start

```