1.配置文件my.cnf里面的几个选项的解释(配置文件放在 [mysqld]下面
server-id 是节点标识符。必须全局唯一(也就是说不能一样)
log-bin 表示开启mysql是二进制日志功能,是mysql可以同步的关键。这个选项必须开启,否则无法生成日志文件,不可能同步。一般会生成文件名为mysql-bin-000001 (mysql-bin-00000x).
如果:show master status; 没有返回状态结果。最有可能就是 log-bin功能没有开启。
relay-bin( 中继日志 )用来定义从中继日志的命名规则(这个一般不用更改)
replicate-wild-ingore-table 是复制过滤选项的。可以过滤掉不需要复制的数据库或表,例如:
replicate-wild-ingore-table=msyql.%.就表示不复制mysql库下的所有对象,
2.同步数据库。既然要主从复制。开始的时候,数据还是要一致的。
一般的操作是:进入主库。锁表,备份。
mysql> flush tables with read lock; (千万不要退出这个终端,否则锁表失败)
可以在开启一个终端 备份;
#mysqldump -u xx -pxxx >xxxxx.sql
导出数据后:解锁 mysql > unlock tables;
3.在开启slave的时候:常出现的问题。
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log:
‘Client requested master to start replication from impossible position‘
这个错误一般分时间的。
如果是第一次安装的时候出现:最大的可能性是:change master to 语句中间出现了空格。解决办法:检查语法。
如果是运行一段时间后,出现这个错误。
查看mysql错误日志:最近的 mysql-bin-xxxxxx 和position 这2个 参数的信息。
*************************************************************
一般步骤: > stop slave;
mysql> change master to master_log_file=‘mysql-bin.xxxxxx‘,master_log_pos=xxxxxxx1x;mysql> start slave;
*********************************************************
如果还不可以。可以查看下 主服务器的bin-log文件。
# mysqlbinlog xxxxx/mysql-bin.xxxxxx> cat.txt
#tail -10 cat.txt
在寻找最近关于master_log_file 和 master_log_pos 的信息。
然后: 重复**一般步骤**。
还有就是:数据要求不高的时候。
stop slave;
set global sql_slave_skip_counter =1 ;
start slave;
最糟糕就是:删了从库。重新同步主库的数据。是最耗费时间的。前提。主库没有问题,是最好的。