mariadb10.3 安装 及 在Centos7下的集群小记

本文详细介绍在CentOS环境下配置MariaDB 10.3版本的YUM源、通过YUM安装MariaDB服务、启动与设置数据库、修改配置文件、启动MariaDB集群以及常见问题解决方法,包括关闭SELinux、防火墙端口设置等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(可以高版本加入低版本的集群),否则会出各种问题!

!!!如果是已有数据库,包含了集群外的数据,切莫作为后继节点连入集群,否则原有数据会被集群数据所清除!!!切记切记

数据的同步依然是有一定延迟,尤其是新建表及对其的操作

在配置文件中修改数据库的路径有时会出问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值