server_id = 1 #唯一标识,主库从库不能重复
log_bin = mysql-bin #开启日志
binlog_format=MIXED #日志记录的格式
max_binlog_size = 512M #单个日志文件最大
expire_logs_day = 3 #日志有效期(天)
binlog_do_db = test1,test2 #日志记录那些数据库
binlog_ignore_db = mysql,performance_schema,information_schema #日志记录忽略那些数据库
2)、创建用于同步账户
创新互联公司专注于洪江管理区网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供洪江管理区营销型网站建设,洪江管理区网站制作、洪江管理区网页设计、洪江管理区网站官网定制、小程序设计服务,打造洪江管理区网络公司原创品牌,更为您提供洪江管理区网站排名全网营销落地服务。
mysql> CREATE USER 'user'@'10.10.10.11' IDENTIFIED BY 'passwd'; #创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'user'@'10.10.10.11'; #分配权限,只能10.10.10.11从服务器连接
mysql>flush privileges;
3)、查看master状态
show master status命令记录二进制文件名(mysql-bin.000003)和position位置(77)。
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 77 | test | manual,mysql |
+------------------+----------+--------------+------------------+
从服务器操作
1)、修改从数据库服务器配置文件my.cnf
server_id = 2
log_bin = mysql-bin #开启日志
binlog_format=MIXED #日志记录的格式
max_binlog_size = 512M #单个日志文件最大
expire_logs_day = 3 #日志有效期(天)
replicate_do_db = test1,test2 #slave上配置,指定slave要复制哪个库
replicate-ignore-db=mysql,performance_schema,information_schema #slave上配置,指定slave要忽略哪些库
relay_log_recovery = 1 #从库建议开启,有利于数据一致性
log_slave_updates = 1 #如果从库还会用做主库,建议开启
2)、设置同步信息
先停止同步
mysql>stop slave;
设置同步信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='10.10.10.10',
-> MASTER_USER='user',
-> MASTER_PASSWORD='passwd',
-> MASTER_LOG_FILE='mysql-bin.000003',
-> MASTER_LOG_POS=77;
其中master_log_file 和 master_log_pos为上面主库show master status命令记录的信息。
3)、启动slave 同步进程
mysql>start slave;
4)、slave状态查看
show slave status\G 命令查看,主要查看这几项:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master_Log_File: mysql-bin.000003
Relay_Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 2720
Exec_master_log_pos: 2720
Slave_IO_Running和Slave_SQL_Running都为YES,表示主从同步设置成功了。
验证操作,如在master数据库的test数据库的一张表中插入一条数据,在slave的test库的相同数据表中查看是否有新增的数据,即可验证主从复制功能是否有效,还可以关闭slave(mysql>stop slave;),然后再修改master,看slave是否也相应修改(停止slave后,master的修改不会同步到slave),就可完成MySQL主从复制功能的验证了。