这里以mariadb为例,和mysql一样的配置

系统:centos7

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

主服务器:192.168.0.1:3305(两台服务器都做过时间同步)

从服务器:192.168.0.2:3306(两台服务器都做过时间同步)

同步的库表:testadmin库下的user表和order表

 

*安装mariadb

 1 #卸载旧数据库
 2 yum remove mysql mysql-server mysql-libs compat-mysql51
 3 #添加mariadb源
 4 vi /etc/yum.repos.d/MariaDB.repo
 5     [mariadb]
 6     name = MariaDB
 7     baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/
 8     gpgkey=https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
 9     gpgcheck=1
10 rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
11 #安装mariadb
12 yum -y install MariaDB-server MariaDB-client
13 #启动
14 systemctl start mariadb

 

*设置数据库密码和远程登录

#root密码为123456
mysqladmin -u root password 123456
#设置远程登录
mysql -uroot -p123456
>grant all on *.* to root@'%' identified by '123456' with grant option;
>flush privileges;

 

*主服务器(192.168.0.1)

[mysqld]
port=3305 bind
-address=0.0.0.0 server-id=1 #设置优先级,主必须小于从 log-bin=mysql-bin log-slave-updates=true
#重启
systemctl restart mariadb
#配置连接从服务器,连接的用户是test,密码为123
mysql -uroot -p123456
>grant replication client,replication slave on *.* to test@'192.168.0.2' identified by '123'; #这里地址可以写成192.168.0.%,表示这个网段的从数据库都可以连接到
>flush privileges;

 

*从服务器(192.168.0.2)

[mysqld]
bind-address=0.0.0.0
server-id=2
relay-log=relay-bin
#需要同步的表
replicate-wild-do-table = testadmin.user
replicate-wild-do-table = testadmin.order
#重启
systemctl restart mariadb
#配置连接主服务器
mysql -uroot -p123456
>change master to master_host='192.168.0.1',master_user='test',master_password='123',master_port=3305; #一般默认是3306,可以不写这个端口配置,只是遇到特殊情况就需要加上master_port
>flush privileges;

 

*验证

#从服务器上
mysql -uroot -p123456
>start slave;  #若要重新设置连接,必须要先停掉stop slave
>show slave status \G;
.
.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
.
.
#表示连接成功
#然后再到主数据库指定库里操作指定表,从数据库上的表也会跟着改变,但是如果修改其他未指定的库或者表,从数据库上并不会同步修改,当然,如果是直接在从数据库上修改任何表,主数据库并不会有任何变化

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄