linux mysql replication master to slave configuration 小记
2012-02-08 11:16
423 查看
首先讲一下replication的原理:对数据库进行操作时,会产生相应的二进制log文件,其中记载了对数据库所有操作的sql,slave通过指定master二进制log和相应偏移,将二进制log复制过来,从而和master具有相同二进制log,从而执行了完全一模一样的的操作,达到replication。
从原理可以看出,master配置的时候一定要打开bin-log,网上关于master-slave的配置比比皆是,我在此只记录我在配置过程中遇到的问题。
1.关于binlog-do-db :该选项表面上是指,指定对哪个数据库的操作才会产生bin-log,其实不然,该选项是检查在执行sql操作时,当前数据库——即use 的数据库是否为指定值,若是则产生bin-log,否则不产生。举个例子:若binlog-do-db=mytest,若use mytest;则将产生bin-log,若use 其他数据库,即使操作的是mytest,也不会产生bin-log。这就是为什么我在使用时,在mysql command新建一张表会产生bin-log,而转用mysql
work bench或用程序建表,而不会产生bin-log的原因。当然也可以设置该用户的默认数据库
2.关于replication-do-db:该选项所产生的问题和上一条一模一样,当bin-log中不use数据库或者use其他数据库,同步也不会被执行,解决方法很简单,改为replication-wild-do-table=database.%就ok了。
3.关于mysql远程登录:这个网上的做法也有很多.1:更改user 表中Host字段为指定ip或ip段或%.2:grant all privileges on *.* to 'username'@'指定ip或ip段或%' identified by 'password' with grant option. 实际上一般的操作错误网上都有解答:我在这碰见的错误是113,实际上是iptable开启,无法访问3306端口,但是已经设置了iptable开机不自动启动,但是每次使用时,都要先service
iptable stop 然后重启mysql 服务才可以,这个问题至今没有解决,我会在解决后,更新这部分内容。
4.切记,在刚安装好系统后,要先至少启动一次mysql服务后,再进行修改配置文件,否则会启动不起来,我猜测是因为mysql第一次启动会初始化一些东西,whatever,没时间去深究。
5.若master中存在一张未产生bin-log的表,此后对该表的插入删除操作开启了bin-log,会导致slave报错,需要重新设置
从原理可以看出,master配置的时候一定要打开bin-log,网上关于master-slave的配置比比皆是,我在此只记录我在配置过程中遇到的问题。
1.关于binlog-do-db :该选项表面上是指,指定对哪个数据库的操作才会产生bin-log,其实不然,该选项是检查在执行sql操作时,当前数据库——即use 的数据库是否为指定值,若是则产生bin-log,否则不产生。举个例子:若binlog-do-db=mytest,若use mytest;则将产生bin-log,若use 其他数据库,即使操作的是mytest,也不会产生bin-log。这就是为什么我在使用时,在mysql command新建一张表会产生bin-log,而转用mysql
work bench或用程序建表,而不会产生bin-log的原因。当然也可以设置该用户的默认数据库
2.关于replication-do-db:该选项所产生的问题和上一条一模一样,当bin-log中不use数据库或者use其他数据库,同步也不会被执行,解决方法很简单,改为replication-wild-do-table=database.%就ok了。
3.关于mysql远程登录:这个网上的做法也有很多.1:更改user 表中Host字段为指定ip或ip段或%.2:grant all privileges on *.* to 'username'@'指定ip或ip段或%' identified by 'password' with grant option. 实际上一般的操作错误网上都有解答:我在这碰见的错误是113,实际上是iptable开启,无法访问3306端口,但是已经设置了iptable开机不自动启动,但是每次使用时,都要先service
iptable stop 然后重启mysql 服务才可以,这个问题至今没有解决,我会在解决后,更新这部分内容。
4.切记,在刚安装好系统后,要先至少启动一次mysql服务后,再进行修改配置文件,否则会启动不起来,我猜测是因为mysql第一次启动会初始化一些东西,whatever,没时间去深究。
5.若master中存在一张未产生bin-log的表,此后对该表的插入删除操作开启了bin-log,会导致slave报错,需要重新设置
相关文章推荐
- How to Setup MySQL (Master-Slave) Replication in CentOS
- MySQL复制错误 The slave I/O thread stopsbecause master and slave have equal MySQL server UUIDs; these UUIDs must bedifferent for replication to work 解析
- mysql replication copy master to slave
- mysql5.5 master-slave(Replication)主从配置
- [置顶] 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
- MySQL 5.6主从Slave_IO_Running:Connecting/error connecting to master *- retry
- MySQL主从同步报Client requested master to start replication from position
- How to create/restore a slave using GTID replication in MySQL 5.6
- linux配置mysql主从--master and slave
- linux下实现MySQL主从复制(Master-Slave)
- 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
- 【转载】MySQL 5.6主从Slave_IO_Running:Connecting/error connecting to master *- retry
- Mysql 5.5 replication 多数据库主从备份Master-Slave配置总结
- 在MySql上实现Replication(Master 与 Slave 数据同步) 一
- mysql_upgrade 引起的master/slave replication 中断
- Mysql 5.5 replication 多数据库主从备份Master-Slave配置总结
- 【MySQL】MySQL同步报错-> received end packet from server, apparent master shutdown: Slave I/O thread: Failed reading log event, reconnecting to retry报错解决和分析
- 两主机搭建MySQL主从复制后,show slave status显示:Last_IO_Error: error connecting to master ……
- Mysql master/slave replication
- (精典教程)在MySql上实现Replication(Master 与 Slave 数据同步)