分布式mysql集群之——主从复制

服务器 ayflying 1721℃ 评论

首先手动复制两个数据库,让主数据与从数据库的数据表内容一致

主数据库配置

[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集群之——主从复制

高效,专业,悠悠博客

联系我们