设为首页 收藏本站
查看: 948|回复: 0

[经验分享] 搭建互为主从的MySQL服务器

[复制链接]

尚未签到

发表于 2018-10-8 10:39:52 | 显示全部楼层 |阅读模式
  node1的IP地址:192.168.1.254
  node2的IP地址:192.168.1.253
  操作系统为RHEL7.3,MySQL版本为5.7.18
  1、修改node1的MySQL配置文件
  #注意server_id字段一定不能一样,由于前面的配置server_id已经配置,且其值唯一,所以此处不再进行配置
  修改node1的mysql配置文件
  # 服务器的ID,必须唯一,一般设置自己的IP
  server_id=254
  # 复制过滤:不需要备份的数据库(MySQL库一般不同步)
  binlog-ignore-db=mysql
  # 开启二进制日志功能,名字可以随便取,最好有含义(比如项目名)
  log-bin=lamp-mysql-bin
  # 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
  binlog_cache_size=1M
  # 主从复制的格式(mixed,statement,row,默认格式是 statement)
  binlog_format=mixed
  # 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
  expire_logs_days=7
  ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
  ## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
  slave_skip_errors=1062
  # 作为从服务器时的中继日志
  relay_log=lamp-mysql-relay-bin
  # log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
  log_slave_updates=1
  # 主键自增规则,避免主从同步ID重复的问题
  auto_increment_increment=2  # 自增因子(根据MySQL服务器数量修改,本例中是2台MySQL服务器)
  auto_increment_offset=1     # 自增偏移(从1开始)
  2、修改node2的MySQL配置文件
  # 复制过滤:不需要备份的数据库(MySQL库一般不同步)
  binlog-ignore-db=mysql
  # 开启二进制日志功能,名字可以随便取,最好有含义(比如项目名)
  log-bin=lamp-mysql-bin
  # 为每个 session 分配的内存,在事务过程中用来存储二进制日志的缓存
  binlog_cache_size=1M
  # 主从复制的格式(mixed,statement,row,默认格式是 statement)
  binlog_format=mixed
  # 二进制日志自动删除/过期的天数。默认值为 0,表示不自动删除。
  expire_logs_days=7
  ## 跳过主从复制中遇到的所有错误或指定类型的错误,避免 slave 端复制中断。
  ## 如:1062 错误是指一些主键重复,1032 错误是因为主从数据库数据不一致
  slave_skip_errors=1062
  # 作为从服务器时的中继日志
  relay_log=lamp-mysql-relay-bin
  # log_slave_updates 表示 slave 将复制事件写进自己的二进制日志
  log_slave_updates=1
  # 主键自增规则,避免主从同步ID重复的问题
  auto_increment_increment=2  # 自增因子(根据MySQL服务器数量修改,本例中是2台MySQL服务器)
  auto_increment_offset=2     # 自增偏移(从2开始)
  3、分别在node1和node2上重启MySQL服务
  在node1上重启MySQL服务
  [root@node1 ~]# systemctl restart mysqld
  在node2上重启MySQL服务
  [root@node2 ~]# systemctl restart mysqld
  4、在node1上进入MySQL数据库,且配置允许从node2同步的账号
  [root@node1 ~]# mysql -u root -p
  Enter password:
  Welcome to the MySQL monitor.  Commands end with ; or \g.

  Your MySQL connection>  Server version: 5.7.18-log Source distribution
  Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  Oracle is a registered trademark of Oracle Corporation and/or its
  affiliates. Other names may be trademarks of their respective
  owners.
  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.253'>  mysql> flush privileges;
  Query OK, 0 rows affected (0.06 sec)
  5、在node1上查看并记录binlog文件的position和File的值,配置从机时会用到
  mysql> show master status;
  +-----------------------+----------+--------------+------------------+-------------------+
  | File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  +-----------------------+----------+--------------+------------------+-------------------+
  | lamp-mysql-bin.000001 |      631 |              | mysql            |                   |
  +-----------------------+----------+--------------+------------------+-------------------+
  1 row in set (0.00 sec)
  mysql>
  6、在node2上将node1作为自己的主服务器,并且开启slave状态。
  mysql> change master to master_host='192.168.1.254',master_user='repl', master_password='repl@123', master_port=3306, master_log_file='lamp-mysql-bin.000001', master_log_pos=631, master_connect_retry=30;
  mysql> start slave;
  7、在node2上查看自己的slave状态。
  mysql> show slave status\G;
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  以上两个参数要全部是Yes状态
  8、在node2上创建允许从node1同步的账号
  [root@node2 ~]# mysql -u root -p
  Enter password:
  Welcome to the MySQL monitor.  Commands end with ; or \g.

  Your MySQL connection>  Server version: 5.7.18-log Source distribution
  Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
  Oracle is a registered trademark of Oracle Corporation and/or its
  affiliates. Other names may be trademarks of their respective
  owners.
  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

  mysql> grant replication slave, replication client on *.* to 'repl'@'192.168.1.254'>  mysql> flush privileges;
  9、在node2上查看并记录binlog文件的position和File的值。
  mysql> show master status;
  +-----------------------+----------+--------------+------------------+-------------------+
  | File                  | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  +-----------------------+----------+--------------+------------------+-------------------+
  | lamp-mysql-bin.000001 |      474 |              | mysql            |                   |
  +-----------------------+----------+--------------+------------------+-------------------+
  10、在node1上将node2作为自己的主服务器,并且开启slave状态。
  mysql> change master to master_host='192.168.1.253',master_user='repl', master_password='repl@123', master_port=3306, master_log_file='lamp-mysql-bin.000001', master_log_pos=474, master_connect_retry=30;
  mysql> start slave;
  11、在node1上查看自己的slave状态。
  mysql> show slave status\G;
  Slave_IO_Running: Yes
  Slave_SQL_Running: Yes
  以上两个参数要全部是Yes状态
  12、在node1或node2任意一台数据库中创建数据库,会自动同步到另外一台数据库
  mysql> create database netser;
  mysql> show databases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | mysql              |
  | netser             |
  | performance_schema |
  | sys                |
  +--------------------+
  5 rows in set (0.09 sec)
  在另外一个节点,查看数据库,会看到完全一致的数据信息
  mysql> show databases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | mysql              |
  | netser             |
  | performance_schema |
  | sys                |
  +--------------------+
  5 rows in set (0.06 sec)


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-616332-1-1.html 上篇帖子: MySQL连接数实时查看 下篇帖子: RHEL7.2编译安装mysql5.7.13
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表