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
CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000219′, MASTER_LOG_POS=126;
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;
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