1、安装源
在centos中配置yum源,具体的源生成页面官方的: https://downloads.mariadb.org/mariadb/repositories/#mirror=shanghai-university
这里给出安装10.3的版本 yum源:
vi /etc/yum.repos.d/MariaDB.repo
# MariaDB 10.3 CentOS repository list - created 2018-11-09 02:41 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.3/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
2、yum安装
yum install MariaDB-server MariaDB-client
3、启动服务
systemctl start mysql
4、设置数据库
mysql_secure_installation
旧数据库要升级数据库:
mysql_upgrade -uroot -p
(如socket路径是/opt/mysql/mysql.sock,加上 --socket=/opt/mysql/mysql.sock )
如果需要重新安装初始数据库用指令(yum安装后会安装初始数据库):
mysql_install_db --user=mysql
(如配置文件是/etc/my.cnf.d/server.cnf,加上 --defaults-file=/etc/my.cnf.d/server.cnf )
5、修改配置文件
vi /etc/my.cnf.d/server.cnf
[mysqld]
server-id=245
user=mysql
#datadir=/opt/mysql
innodb_data_file_path = ibdata1:10M:autoextend
skip-external-locking
skip-name-resolve
character-set-server=utf8
log-error= /opt/mysql/mysql-error.log
#
# * Galera-related settings
#
[galera]
# Mandatory settings
wsrep_provider_options="gcache.size=4G"
wsrep_certify_nonPK=ON
wsrep_on=ON
#集群名称是集群的名称,区分多个集群
wsrep_cluster_name="shoudian"
#集群列表对新集群而言可以不设,但如果这台是新加入节点就需要写上前面几台的地址
#wsrep_cluster_address="gcomm://10.28.11.69,10.28.11.73,10.28.11.75"
wsrep_provider=/usr/lib64/galera/libgalera_smm.so
binlog_format=row
default_storage_engine=InnoDB
innodb_autoinc_lock_mode=2
# Allow server to accept connections on all interfaces.
#bind-address=0.0.0.0
# Optional setting
wsrep_slave_threads=8
innodb_flush_log_at_trx_commit=0
6、启动集群
第一台服务器
mysqld --defaults-file=/etc/my.cnf.d/server.cnf --user=mysql --wsrep-new-cluster --wsrep-cluster-address="gcomm://"
或者 启动集群命令:
service mysql start --wsrep-new-cluster --wsrep-cluster-address="gcomm://"
后继服务器
service mysql start (systemctl start mysql)
或
/etc/init.d/mysql start
很多次使用 service mysql start 或 systemctl start mysql 会失败而这个正常
7、查看集群状态
show status like “wsrep%”;
8、问题重点
必须关闭 selinux!否则报错,会无法连入集群;而且启用selinux后,如果修改数据库目录,启动数据库就会报innodb无法初始化
记得防火墙必须开放4567 4444端口
(默认的集群端口,第一台是4567,后继的是4444;但后面就不分了,所以一起开放吧,否则也会报错无法连入集群)
firewall-cmd --zone=public --add-port=4567/tcp --permanent
firewall-cmd --zone=public --add-port=4444/tcp --permanent
firewall-cmd --reload
注意,各个节点尽量用同一个版本的MariaDB(可以高版本加入低版本的集群),否则会出各种问题!
!!!如果是已有数据库,包含了集群外的数据,切莫作为后继节点连入集群,否则原有数据会被集群数据所清除!!!切记切记
数据的同步依然是有一定延迟,尤其是新建表及对其的操作
在配置文件中修改数据库的路径有时会出问题