环境说明
- 主从服务器最好数据库的版本都一样
- windows为主机,配置文件为my.ini
- linux 为从机 配置文件为my.cnf
主机配置
在my.ini中的 mysqlId进行一下配置
-
主服务器唯一id :server-id=1
-
启用二进制日志:log-bin=自己本地的路径/mysqlbin
-
【可选】启用错误日志:log-err=自己本地的路径/mysqlerr
-
【可选】read-only=0 主机读写都可以
-
【可选】binlog-ignore-db=mysql 设置不要复制的数据库(mysql默认有mysql数据库)
-
【可选】binlog-do-db=需要复制的主数据库名
从机配置
输入Linux命令
- vim etc/my.cnf
- server-id=2
保存以后
- windows:手动重启数据库
Linux:service mysql stop
service mysql start
-
主机从机关闭防火墙(一般邮件申请开启开放端口)
windows:手动关闭
linux:service iptables stop
-
主机上建立账户并授权给slave
数据库的命令行进行以下操作
grant replication slave on *.* to 'zhangsan'@'192.168.14.167' identified by ‘123456’ //username :zhangsan password :123456 #测试 grant replication slave on *.* to 'chen'@'123.57.166.236' identified by '1234'
flush privileges;
show master status; mysql> show master status; +----------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +----------------------+----------+--------------+------------------+ | mysql_log_bin.000001 | 1715 | | | +----------------------+----------+--------------+------------------+ //记住File和Position值
-
在Linux从机上配置需要复制的主机
数据库的命令行进行以下操作
change master to MASTER_HOST='172.0.0.1Z主机ip', MASTER_USER='chenweibin', MASTER_PASSWORD='1234', MASTER_LOG_FILE='File文件名_bin.000001', MASTER_LOG_POS=Position #测试
change master to MASTER_HOST=‘192.168.31.136’,
MASTER_USER=‘chen’,
MASTER_PASSWORD=‘1234’,
MASTER_LOG_FILE=‘mysql_log_bin.000003’,
MASTER_LOG_POS=17163;
start slave;
show slave status\G;
//slave-IO_runing 和slave sql running必须同时为yes
stop slave; //linux 停止slave
注:与本机和云数据的同步有什么关系。能否写个程序将重复手动连接的过程自动化
Open Replicator ( http://code.google.com/p/open-replicator/ ) 开源了。Open Replicator是一个用Java编写的MySQL binlog分析程序。Open Replicator 首先连接到MySQL(就像一个普通的MySQL Slave一样),然后接收和分析binlog,最终将分析得出的binlog events以回调的方式通知应用。Open Replicator可以被应用到MySQL数据变化的实时推送,多Master到单Slave的数据同步等多种应用场景。目前的这个最初版本,是笔者用 了大概两周的业余时间开发的。在程序结构上,最主要的设计原则是高性能,低内存占用。Open Replicator目前只支持MySQL5.0及以上版本
Slave的数据同步等多种应用场景。目前的这个最初版本,是笔者用 了大概两周的业余时间开发的。在程序结构上,最主要的设计原则是高性能,低内存占用。Open Replicator目前只支持MySQL5.0及以上版本