环境配置
准备3台服务器
192.168.1.16 mariadb-1.novalocal mariadb-1
192.168.1.19 mariadb-2.novalocal mariadb-2
192.168.1.18 mariadb-3.novalocal mariadb-3
配置repo文件
vim /etc/yum.repos.d/MariaDB.repo
1 2 3 4 5
| [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.1/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
|
yum makecache
禁用防火墙和selinux
如果要使用防火墙添加允许3306、和4567 端口规则。
安装Mariadb和galera cluster(三个节点都执行)
yum install MariaDB-server MariaDB-client galera
启动mariadb
systemctl start mariadb
一些初始化安全配置
/usr/bin/mysql_secure_installation
关闭数据库
systemctl stop mariadb
修改mariadb-1上的/etc/my.cnf.d/server.cnf文件如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [galera] wsrep_provider = /usr/lib64/galera/libgalera_smm.so wsrep_cluster_address = "gcomm://192.168.1.16,192.168.1.18,192.168.1.19" wsrep_node_name = mariadb-1 wsrep_node_address=192.168.1.16 wsrep_on=ON binlog_format=ROW default_storage_engine=InnoDB innodb_autoinc_lock_mode=2 #bind-address=0.0.0.0 wsrep_slave_threads=1 innodb_flush_log_at_trx_commit=0 innodb_buffer_pool_size=122M wsrep_sst_method=rsync
|
将此文件复制到mariadb-2、mariadb-3,注意要把 wsrep_node_name 和 wsrep_node_address 改成相应节点的 hostname 和 ip。
启动 MariaDB Galera Cluster 服务
/usr/sbin/mysqld –wsrep-new-cluster –user=root &
–wsrep-new-cluster 这个参数只能在初始化集群使用,且只能在一个节点使用。
观察日志:
[root@node4 ~]# tail -f /var/log/message
1 2 3
| 150701 19:54:17 [Note] WSREP: wsrep_load(): loading provider library 'none' 150701 19:54:17 [Note] /usr/libexec/mysqld: ready for connections. Version: '5.5.40-MariaDB-wsrep' socket: '/var/lib/mysql/mysql.sock' port: 3306 MariaDB Server, wsrep_25.11.r4026
|
出现 ready for connections ,证明我们启动成功
查看是否启用galera插件
连接mariadb,查看是否启用galera插件
目前集群机器数
查看集群状态
show status like ‘wsrep%’;
查看连接的主机
另外两个节点mariadb会自动加入集群
systemctl start mariadb
这时查看galera集群机器数量
已经连接机器的ip
测试
在mariadb-1上创建数据库,创建表,插入数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| MariaDB [(none)]> create database test1; MariaDB [test1]> insert into test values(1); Query OK, 1 row affected (0.01 sec)
MariaDB [test1]> insert into test values(2); Query OK, 1 row affected (0.01 sec)
MariaDB [test1]> insert into test values(3); Query OK, 1 row affected (0.00 sec)
MariaDB [test1]> insert into test values(4); Query OK, 1 row affected (0.00 sec)
MariaDB [test1]> insert into test values(5); Query OK, 1 row affected (0.03 sec)
MariaDB [test1]> insert into test values(6); Query OK, 1 row affected (0.01 sec)
MariaDB [test1]> insert into test values(7); Query OK, 1 row affected (0.01 sec)
|
在另外两台mariadb-2、mariadb-3上可以看见刚刚插入的数据,说明数据同步了。