1. 启用 主库的 log_bin 日志,设置日志格式 binlog_format=MIXED,或者 binlog_format=ROW,
启用主库的 server-id
#主库上加
#只记录 ka_app 库的同步日志
binlog_do_db=ka_app
#不记录下列库的同步日志
binlog_ignore_db=mysql
binlog_ignore_db=performance_schema
binlog_ignore_db=information_schema
binlog_ignore_db=ka_tdf
binlog_ignore_db=ka_model
binlog_ignore_db=test
重启主库,/etc/init.d/mysql restart
2. 关闭备份机器的的二进制 log_bin,注释,设置 server-id,设置从库的只读属性 read_only=ON,
开启从服务器中继日志 relay-log=mysql-relay,开启从服务器中继索引 relay-log-index=mysql-relay.index
#从库上加
#只同步 ka_app 的所有表日志
replicate_wild_do_table=ka_app.%
#不同步下面库的所有表日志
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=performance_schema.%
replicate-wild-ignore-table=information_schema.%
replicate-wild-ignore-table=ka_tdf.%
replicate-wild-ignore-table=ka_model.%
replicate-wild-ignore-table=test.%
重启从库 /etc/init.d/mysql restart
3. 主库上创建复制账户(根据自己需要创建)
mysql>grant replication slave on *.* to 'repl'@'169.254.10.11' identified by 'repl';
mysql>flush privileges;
4. 导入导出数据
主库锁定导出
mysql>flush tables with read lock;
mysqldump -uroot -pmysql --host=169.254.10.12 --flush-logs --databases stock-app --master-data=1 > backup-source.sql
从库还原
mysql -uroot -p123456 < backup-source.sql
5. 启用同步
主库查看当前日志位置
mysql>show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000004 | 360 | | |
+------------------+----------+--------------+------------------+
从库指定从指定位置开始同步
mysql>change master to master_host='169.254.10.12',master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000004',master_log_pos=360;
mysql>slave start;
6. 主库解除锁定
mysql>unlock tables;
7. 查看主从同步的状态
主库
mysql>show master status;
从库
mysql>show slave status;