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
![在这里插入图片描述](https://img-blog.csdnimg.cn/ffbb74b03567485294e5ad883901df9f.png#pic_center)
如出现以下两项,则说明配置成功!
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 ;