6.mysql主-从备份

主-主备份,首先AB机要保持数据一致,即先手工备份A机数据,然后在B机上恢复,之后就很简单了,只需要在B机上创建一个同步账号,并在A机上输入B机的那些参数然后启动slave start就实现了主-主双机热备。

主-从复制如下:
A:192.168.10.119:master
B:192.168.10.118:slave
参数说明:
需要同步的库名,多个用逗号隔开。
binlog-do-db=world,city
不需要同步的库名
binlog-ignore-db=mysql

MYSQL_A作为主机,MYSQL_B作为从机。在MYSQL_A和MYSQL_B上分别创建好需要同步的数据库

在A机上操作
vi /etc/my.cnf在mysqld中加入下面
server-id=1
log-bin=mas
binlog-do-db=world
binlog-ignore-db=mysql

service mysqld restart

同步账号
GRANT REPLICATION SLAVE ON *.* TO 'syn'@'192.168.10.118' IDENTIFIED BY '123456';
先导入数据
mysql < world.sql
再锁表
FLUSH TABLES WITH READ LOCK;
再导出数据
mysqldump -uroot -p world >world1.sql

mysql> show master status;
+------------+----------+--------------+------------------+
| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------+----------+--------------+------------------+
| mas.000002 |      260 | world        | mysql            |
+------------+----------+--------------+------------------+
1 row in set (0.00 sec)
这里的文件名与位置要在slave中输入。

再释放锁
unlock tables;

在B机上操作
server-id=2
log-bin=sla
binlog-do-db=world
binlog-ignore-db=mysql

service mysqld restart
先将A机上备份的数据world1.sql导入进来,还原数据,保证二者之间的数据一致。

设置主服务器的参数
mysql> change master to
    -> MASTER_HOST='192.168.10.119',
    -> MASTER_USER='syn',
    -> MASTER_PASSWORD='123456',
    -> MASTER_CONNECT_RETRY=60,
    -> MASTER_LOG_FILE='mas.000002',
    -> MASTER_LOG_POS=260;
Query OK, 0 rows affected (0.19 sec)

slave start;
show slave status\G;


下面是做测试,在A机上删除数据,
mysql> delete from City where id<10;
Query OK, 6 rows affected (0.07 sec)
mysql> show master status;

在B机上查看,很快就同步过来了。
msyql> show slave status\G;