这里以mariadb为例,和mysql一样的配置
系统:centos7
主服务器: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'; >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; >show slave status \G; . . Slave_IO_Running: Yes Slave_SQL_Running: Yes . . #表示连接成功 #然后再到主数据库指定库里操作指定表,从数据库上的表也会跟着改变,但是如果修改其他未指定的库或者表,从数据库上并不会同步修改,当然,如果是直接在从数据库上修改任何表,主数据库并不会有任何变化