首先手动复制两个数据库,让主数据与从数据库的数据表内容一致
主数据库配置
[mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
从数据库配置
[mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 binlog-do-db=user //[选填]需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可 binlog-ignore-db=user_temp //[选填]不需要复制的数据库表名,如果复制多个数据库,重复设置这个选项即可 replicate-do-db=myDB //[选填]需要同步的数据库 replicate-ignore-db=myDB_temp //[选填]排除不需要同步的数据库
注:replicate-do-db,在自身已经是从服务器,又作为其它服务器的主服务器时候使用,用法与binlog-do-db一致.
配置主从服务器的my.cnf时,留心各自的server-id一定要彼此独立,不能重复,否则,会出现如下错误:
Slave: received end packet FROM server, apparent master shutdown
然后重启两台服务器的mysql【重要】
在主服务器上建立mysql账号,不需要root账号权限,需要开放一个 References_slave 权限
登录主服务器的mysql,查询master的状态
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000175 | 3956 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.01 sec)
注:执行完此步骤后不要再操作主服务器MYSQL,防止主服务器状态值变化
现在开始配置从服务器:
mysql>change master to master_host='192.168.1.222',master_user='myDB',master_password='123456', master_log_file='mysql-bin.000175',master_log_pos=3956; //注意不要断开,308数字前后无单引号。 Mysql>start slave; //启动从服务器复制功能 mysql> show slave status; //检测从服务器复制功能状态
如果输出结果没有报错,那么主从同步就配置好了,只用在主服务修改的内容,全部都会同步到从服务器
转载请注明:七彩悠悠博客 | 心悠悠 情悠悠 » 分布式mysql集群之——主从复制