mysqldump主从数据库手动同步 –master-data

master-date参数在建立slave数据库的时候会用到,当这个参数的值为1(默认情况下),mysqldump出来的文件就会包括CHANGE MASTER TO这个语句,CHANGE MASTER TO后面紧接着就是file和position的记录,file和position记录的位置就是slave从master端复制文件的起始位置。当这个值是2的时候,chang master to也是会写到dump文件里面去的,但是不会有上面那个作用了(thus is information only)

参考下面实例
mysqldump -uroot -p data  –master-data=1 –quick  –flush-logs  > data_bak.sql

看下 dump 出来的文件, file position 的值和上面是相同的
# grep -i “CHANGE MASTER TO” data_bak.sql
CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000219′, MASTER_LOG_POS=126;
如果导出的时候用  –master-data=2 参数
需要手动修改下面的参数
slave stop;
change master to master_host=’66.212.21.156′,
master_user=’test’,
master_password=’123456′,
master_port=’3306′,
master_log_file=’mysql-bin.000034′,
master_log_pos=106;
slave start;
查看下状态
show slave status;
如果之前已经通过,并有配置好链接服务器和用户密码,则不用修改这些信息只需修改下master_log_file 和master_log_pos两个信息
例如:CHANGE MASTER TO MASTER_LOG_FILE=’updatelog.000932′,MASTER_LOG_POS=944722280;
执行命令中有提示
mysql> CHANGE MASTER TO MASTER_LOG_FILE='updatelog.000932',MASTER_LOG_POS=944722280;
ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log
则删除数据库目录下面一个文件:rm -f mysql-bin.index

登录数据库,先执行下
mysql> reset slave;
Query OK, 0 rows affected (0.01 sec)
再次执行
CHANGE MASTER TO MASTER_LOG_FILE=’updatelog.000932′,MASTER_LOG_POS=944722280;
查看状态
mysql> show slave status\G;
******************* 1. row *******************
Slave_IO_State: Connecting to master 有在这步说明已经链接成功,如果没有显示,检查授权是否正确。



Mysqldump 命令小记 --opt

mysqldump -uroot -p --opt DATABASENAME [Table]  > xxx.sql

默认Mysqldump导出的SQL文件中不但包含了导出的数据,还包括导出数据库中所有数据表的结构信息。

–opt:此Mysqldump命令参数是可选的,如果带上这个选项代表激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数,也就是通过–opt参数在使用Mysqldump导出Mysql数据库信息时不需要再附加上述这些参数。

–quick:代表忽略缓冲输出,Mysqldump命令直接将数据导出到指定的SQL文件。

–add-drop-table:顾名思义,就是在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名。

–add-locks:表示在INSERT数据之前和之后锁定和解锁具体的数据表,你可以打开Mysqldump导出的SQL文件,在INSERT之前会出现LOCK TABLES和UNLOCK TABLES语句。

–extended-insert (-e):此参数表示可以多行插入。

更多参数说明请看 mysqldump --help