时间:2021-07-01 10:21:17 帮助过:14人阅读
安装完后的配置文件:
# ll /etc/my.cnf.d/ total 16 -rw-r--r-- 1 root root 295 Oct 27 08:23 client.cnf -rw-r--r-- 1 root root 232 Oct 27 08:23 mysql-clients.cnf -rw-r--r-- 1 root root 1007 Aug 16 18:24 server.cnf -rw-r--r-- 1 root root 285 Aug 16 18:24 tokudb.cnf
启动数据库
# /etc/init.d/mysql start
加固数据库
# mysql_secure_installation
我这里密码是123456,不必一致
授权认证用户:
# mysql -p123456
添加集群认证用户:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO ‘galera‘@‘%‘ IDENTIFIED BY ‘galera‘ WITH GRANT OPTION; MariaDB [(none)]> flush privileges;
停止所有节点mysql服务
# /etc/init.d/mysql stop
在 [mariadb] 模块中添加如下:
Controller1 :
[mariadb] query_cache_size=0 # 关闭查询缓存 binlog_format=ROW # binlog文件格式:行 default_storage_engine=innodb # Mariadb 存储引擎 innodb_autoinc_lock_mode=2 #主键自增模式修改为交叉模式 wsrep_provider=/usr/lib64/galera/libgalera_smm.so #galera 库文件 wsrep_cluster_address=gcomm://192.168.0.12,192.168.0.13 # galera集群url wsrep_cluster_name=‘openstack‘ # galera集群名称 wsrep_node_address=‘192.168.0.11‘ # 该节点的地址 wsrep_node_name=‘controller1‘ # 该节点的主机名 wsrep_sst_method=rsync # 拷贝模式 wsrep_sst_auth=galera:galera # galera集群认证用户:密码
Controller2:
[mariadb] query_cache_size=0 binlog_format=ROW default_storage_engine=innodb innodb_autoinc_lock_mode=2 wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address=gcomm://192.168.0.11,192.168.0.13 wsrep_cluster_name=‘openstack‘ wsrep_node_address=‘192.168.0.12‘ wsrep_node_name=‘controller2‘ wsrep_sst_method=rsync wsrep_sst_auth=galera:galera
Controller3:
[mariadb] query_cache_size=0 binlog_format=ROW default_storage_engine=innodb innodb_autoinc_lock_mode=2 wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address=gcomm://192.168.0.11,192.168.0.12 wsrep_cluster_name=‘openstack‘ wsrep_node_address=‘192.168.0.13‘ wsrep_node_name=‘controller3‘ wsrep_sst_method=rsync wsrep_sst_auth=galera:galera
这里,启动第一个集群节点有点特殊:
Controller1: /etc/init.d/mysql bootstrap Controller2: /etc/init.d/mysql start Controller3: /etc/init.d/mysql start
登录任意节点进行验证:
# mysql -p123456 MariaDB [(none)]> SHOW STATUS LIKE ‘wsrep_cluster_size‘;
MariaDB [(none)]> show global status like ‘ws%‘;
注释:
wsrep_cluster_status为Primary,表示节点为主节点,正常读写。
wsrep_ready为ON,表示集群正常运行。
wsrep_cluster_size为3,表示集群有三个节点。
创建数据库进行测试:
MariaDB [(none)]> create database abcd;
然后,登录其他节点数据库查看是否存在。
MariaDB [(none)]> show databases;
Mariadb-Galera集群搭建完毕。
在集群搭建完毕后在写其他的配置文件:
# vim server.cnf [mariadb-10.0] port = 3306 bind_address = 192.168.0.11 tmpdir = /tmp skip-external-locking skip-name-resolve max_connections=3600 innodb_flush_log_at_trx_commit=2 innodb_log_file_size=100m innodb_log_files_in_group=5 thread_concurrency=24 innodb_thread_concurrency=24 innodb_commit_concurrency=24 character-set-server = utf8 collation-server = utf8_general_ci event_scheduler = ON max_allowed_packet = 20M
三个controller节点都需要监听各自的管理地址。
注意:
当所有节点都宕机的情况下,再次启动节点,Mariadb-Galera集群会出现无法启动的现象
Mariadb-Galera集群启动是有顺序的,遵循一个原则:最后宕机的最先启动,因为集群认为这个节点的数据是最新的。
[ Openstack ] Openstack-Mitaka 高可用之 Mariadb-Galera集群部署
标签:负载 主键 thread storage 技术 back abc 认证用户 ide