Linux Mariadb 双主配置

linux mariadb双主双从配置

时间同步设置

使用Master服务器作为时间同步服务器。

server1时间同步设置

cd /etc
cp -p chrony.conf chrony.conf-bak
vim /etc/chrony.conf
#注释掉网络服务器,添加本地时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.153.128 iburst
#允许地址段访问
allow 192.168.153.0/24
#即使server 指令中时间服务器不可用,也允许将本地时间作为标准时间授予其他客户端
local stratum 10
#重启时间服务
systemctl restart chronyd
systemctl enable chronyd
systemctl status chronyd

server2时间同步设置

cd /etc
cp -p chrony.conf chrony.conf-bak
vim /etc/chrony.conf
#注释掉网络服务器,添加本地时间服务器
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 192.168.153.129 iburst
#重启时间服务
systemctl restart chronyd
systemctl enable chronyd
systemctl status chronyd
检查时间同步情况 timedatectl

NTP synchronized: yes

#NTP sychronized 为 yes,证明时间同步正常。

安装mariadb

yum -y install mariadb-server
启动服务
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

修改数据文件保存目录

mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
cp -p /etc/my.cnf /etc/my.cnf-bak
vim /etc/my.cnf datadir=/data/mysql
重启mariadb服务
systemctl restart mariadb

设置管理员密码

mysql -u root -p ##敲回车进入mariadb
MariaDB [(none)]>set password=password(‘123456’);
MariaDB [(none)]>quit;
重启mariadb服务
systemctl restart mariadb

server1配置

在/etc/my.cnf下增加
[mysqld]
server-id=1###指定server-id server-id不能相同
log_bin=master-bin 指定二进制文件
binlog-ignore-db=mysql #不复制的数据库
binlog-ignore-db=information_schema #不复制的数据库
binlog-ignore-db=performance_schema #不复制的数据库
binlog-ignore-db=test #不复制的数据库
innodb_flush_log_at_trx_commit=1 ##我们每次事务的结束都会触发Log Thread 将log buffer中的数据写入文件并通知文件系统同步文件。这个设置是最安全的设置,能够保证不论是MySQL Crash 还是OS Crash或者是主机断电都不会丢失任何已经提交的数据。

server2配置

###上面有解释,2就不写了
在/etc/my.cnf下增加
[mysqld]
server-id=2
log_bin=master-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=test
innodb_flush_log_at_trx_commit=1

创建同步账户

server1

grant replication slave on . to ‘requser’@‘server2的ip’ identified by ‘requser’;
##新建repuser用户(密码:repuser),server2可以登录server1mariadb,对当前服务器任何数据库的 任何表进行复制操作。
FLUSH PRIVILEGES; ##刷新权限表,使创建的用户repuser 权限生效

server2

grant replication slave on . to ‘requser’@‘server1的ip’ identified by ‘requser’;
##新建repuser用户(密码:repuser),server1可以登录server2mariadb,对当前服务器任何数据库的 任何表进行复制操作。
FLUSH PRIVILEGES; ##刷新权限表,使创建的用户repuser 权限生效

可以顺便在另一台服务器测试能不能登录。
$server2
mysql -urequser -prequser -hserver1ip

查看maser状态

server1

MariaDB [mysql]> show master status;
在这里插入图片描述

server2

MariaDB [mysql]> show master status;
在这里插入图片描述

设置server2器复制参数项

MariaDB [mysql]>change master to master _host = ‘server1的ip’ ,master_port=3306,master_user=‘requser’
,master_password=‘requser’,master_log_file=‘master-bin.000006’,master_log_pos=332;
注意!!!master-bin.000006,332为在server1数据库执行show master status;语句查询到的内容
[mysql]> START SLAVE; ##启用主从同步功能(启动I/O 线程和SQL线程)

###同时启动I/O 线程和SQL线程( I/O线程从主库读取bin log,并存储到relay log中继日志文件中。SQL线程读取中继日志,解析后,在从库重放。)

设置server1器复制参数项

MariaDB [mysql]>change master to master _host = ‘server2的ip’ ,master_port=3306,master_user=‘requser’
,master_password=‘requser’,master_log_file='master-bin.000007‘,master_log_pos=245;
注意!!!master-bin.000007,245为在server2数据库执行show master status;语句查询到的内容
[mysql]> START SLAVE; ##启用主从同步功能(启动I/O 线程和SQL线程)

完毕之后,分别执行

MariaDB [mysql]> SHOW SLAVE STATUS\G

server1

在这里插入图片描述

server2

在这里插入图片描述
如出现以下两项,则说明配置成功!
Slave_IO_Running: yes
Slave_SQL_Running: yes

双从配置

配置从时间同步

vim /etc/chrony.conf
在这里插入图片描述
保存退出之后重启chronyd服务
systemctl restart chronyd
检查时间同步情况 timedatectl
在这里插入图片描述
这里显示NTP sychronized 为 yes,证明时间同步正常。

安装mariadb

yum -y install mariadb-server
启动服务
systemctl start mariadb
systemctl enable mariadb
systemctl status mariadb

修改数据文件保存目录

mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
cp -p /etc/my.cnf /etc/my.cnf-bak
vim /etc/my.cnf datadir=/data/mysql
重启mariadb服务
systemctl restart mariadb

设置管理员密码

mysql -u root -p ##敲回车进入mariadb
MariaDB [(none)]>set password=password(‘123456’);
MariaDB [(none)]>quit;
重启mariadb服务
systemctl restart mariadb

从2数据库同上进行时间同步和安装及配置!

配置从1数据库参数

在这里插入图片描述

参数项

server-id=3
log-bin=master-bin
log-slave-updates=true
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog-ignore-db=test
binlog_format=STATEMENT

####图上有解释的
重启MySQL服务:
systemctl restart mariadb

查看主服务器二进制日志文件的状态信息。

MariaDB [(none)]> show master status ;
在这里插入图片描述

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
在CentOS 7上使用MariaDB实现双复制的步骤如下: 1. 首先,确保你已经在两台服务器上安装了MariaDB,并且它们都是相同的版本。你可以通过运行以下命令来检查MariaDB的版本: ``` mysql -V ``` 2. 在两台服务器上分别编辑MariaDB配置文件`my.cnf`。你可以通过运行以下命令来进行编辑: ``` sudo vi /etc/my.cnf ``` 3. 在第一台服务器的`my.cnf`文件中,添加以下配置来启用二进制日志记录: ``` log_bin = /var/lib/mysql/mysql-bin server_id = 1 ``` 4. 在第二台服务器的`my.cnf`文件中,添加以下配置来启用二进制日志记录: ``` log_bin = /var/lib/mysql/mysql-bin server_id = 2 ``` 5. 在两台服务器上重启MariaDB服务以使配置更改生效。你可以运行以下命令来重启MariaDB服务: ``` sudo systemctl restart mariadb ``` 6. 确保两台服务器上的防火墙已经打开并允许MariaDB的通信端口。默认情况下,MariaDB使用3306端口进行通信。 7. 在第一台服务器上,使用以下命令创建复制用户并授予相应的权限: ``` CREATE USER 'repluser'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'%'; FLUSH PRIVILEGES; ``` 8. 在第一台服务器上,通过运行以下命令获取二进制日志文件名和位置: ``` SHOW MASTER STATUS; ``` 9. 在第二台服务器上,使用以下命令进行从复制配置: ``` CHANGE MASTER TO MASTER_HOST='10.69.5.200', MASTER_USER='repluser', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='master2-bin.000001', MASTER_LOG_POS=2035; ``` 10. 在第一台服务器上,使用以下命令进行从复制配置: ``` CHANGE MASTER TO MASTER_HOST='10.69.5.200', MASTER_USER='repluser', MASTER_PASSWORD='123456', MASTER_PORT=3306, MASTER_LOG_FILE='master1-bin.000001', MASTER_LOG_POS=2035; ``` 11. 从服务器上启动复制进程: ``` START SLAVE; ``` 12. 在两台服务器上分别检查复制状态,确保没有错误: ``` SHOW SLAVE STATUS\G ``` 通过按照以上步骤,你可以在CentOS 7上搭建双复制的MariaDB环境。请注意,在实际部署中,你需要根据你的具体环境和需求进行一些适当的调整和配置

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值