server_id = 1 #惟一标识,主库从库不能重复 log_bin = mysql-bin #开启日志 binlog_format=MIXED #日志记录的格式 max_binlog_size = 512M #单个日志文件最大 expire_logs_day = 7 #日志有效期(天) binlog_do_db = test1,test2 #日志记录那些数据库 binlog_ignore_db = mysql,performance_schema,information_schema #日志记录忽略那些数据库
MySQL服务重启:mysql
systemctl restart mysqld.service
2)、建立用于同步帐户sql
mysql> CREATE USER 'user'@'10.20.1.18' IDENTIFIED BY 'passwd'; #建立用户 mysql> GRANT REPLICATION SLAVE ON *.* TO 'rsync_user'@'10.20.1.1%' identified by 'passwd'; #分配权限 mysql>flush privileges;
3)、查看master状态
show master status命令记录二进制文件名(mysql-bin.000009)和position位置(1354)。
其中“Binlog_Do_DB ”字段显示记录日志要同步的库,“Binlog_Ignore_DB”字段显示忽略记录日志,无需同步的库。
4)、查看master的logbin开启状态数据库
show variables like 'log_bin';
从服务器操做
1)、修改从数据库服务器配置文件my.cnf安全
server-id=2 #惟一标识,与主库不同 relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin #打开slave的relaylog功能的
MySQL服务重启:服务器
systemctl restart mysqld.service
2)、设置同步信息
先中止同步架构
mysql>stop slave;
设置同步信息并发
CHANGE MASTER TO MASTER_HOST='10.20.1.18', MASTER_USER='rsync_user', MASTER_PASSWORD='passwd', MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=754;
其中master_log_file 和 master_log_pos为上面主库show master status命令记录的信息。
3)、启动slave 同步进程异步
mysql>start slave;
4)、slave状态查看
show slave status\G 命令查看,主要查看这几项:ide
Slave_IO_Running: Yes Slave_SQL_Running: Yes Master_Log_File: mysql-bin.000009 Relay_Master_Log_File: mysql-bin.000009 Read_Master_Log_Pos: 1654 Exec_master_log_pos: 1654
只有【Slave_IO_Running】和【Slave_SQL_Running】都是Yes,则同步正常。
No或者Connecting都不行,可查看mysql-error.log,以排查问题。性能
show variables like 'log_error%';
5)、同步测试
验证操做,如在master的新建一test数据库,新建一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据,便可验证主从复制功能是否有效,还能够关闭slave(mysql>stop slave;),而后再修改master,看slave是否也相应修改(中止slave后,master的修改不会同步到slave),就可完成MySQL主从复制功能的验证了。
主库插入数据:
从库查看:验证主从数据同步成功。