主数据库版本:5.5.52-MariaDB ip地址为:192.168.23.121
从数据库版本:5.5.60-MariaDB ip地址为:192.168.23.25
从数据库版本不能低于主数据库版本
首先在从数据库中建立表
导出整个主数据库结构(不包含数据)
mysqldump -h localhost -uroot -pchangemeplease -d databasename> bjg.sql
在从数据库databasename中执行bjg.sql
主服务器
CREATE USER 'replicate'@'%' IDENTIFIED BY '******';
grant replication slave on *.* to 'replicate'@'192.168.23.25' identified by '******';
flush privileges;
从服务器
mysql -h192.168.23.121 -ureplicate -p******
测试是否能够登录成功
主服务器
找到配置文件my.cnf打开后,在[mysqld]下修改
server-id=1
log-bin=mysql-bin
binlog-do-db=backup_db
binlog-ignore-db=mysql
修改完配置文件后,保存,重启一下mysql服务
systemctl stop mariadb.service
systemctl start mariadb.service
或者
systemctl restart mariadb.service
登录mysql后执行
flush tables with read lock;
show master status\G;
*************************** 1. row ***************************
File: mysql-bin.000001
Position: 245
Binlog_Do_DB: backup_db
Binlog_Ignore_DB: mysql
1 row in set (0.00 sec)
unlock tables;
从服务器
找到配置文件my.cnf打开后,在[mysqld]下修改
server-id = 2
log-bin=mysql-bin
replicate-do-db=backup_db
replicate-ignore-db=mysql,information_schema,performance_schema,union_server
修改完配置文件后,保存,重启一下mysql服务
systemctl stop mariadb.service
systemctl start mariadb.service
或者
systemctl restart mariadb.service
登录mysql执行
stop slave;
change master to master_host='192.168.23.121',master_user='replicate',master_password='******', master_log_file='mysql-bin.000001',master_log_pos=245;
start slave;
show slave status\G;
查看下面两项值均为Yes,即表示设置从服务器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes