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

[经验分享] 部署mysql主从同步

[复制链接]

尚未签到

发表于 2018-10-5 13:37:40 | 显示全部楼层 |阅读模式
  部署mysql主从同步
  一、什么是mysql主从同步
  主:正在被客户端访问的数据库服务器,被称作主库服务器。
  从:自动同步主库上的数据的数据库服务器,被称作从库服务器。
  二、配置mysql主从同步
  2.1 拓扑图
  数据库服务器 192.168.4.51  做主库
  数据库服务器 192.168.4.52  做从库
  2.2  环境准备
  主从同步未配置之前,要保证从库上要有主库上的数据。
  禁用selinux    ]#  setenforce  0
  关闭防火墙服务]# systemctl  stop firewalld
  物理连接正常 ]#  ping   -c   2   192.168.4.51/52
  数据库正常运行,管理可以从本机登录
  2.3 配置mysql主从同步
  +++2.3.1 配置主库
  a 创建用户授权
  b 启用binlog日志
  c 查看正在使用binlog日志信息
  +++.3.2  配置从库
  a 验证主库的用户授权
  b 指定server_id
  c 数据库管理员本机登录,指定主数据库服务器的信息
  mysql> change  master  to
  -> master_host="主库ip地址",
  -> master_user="主库授权用户名",
  -> master_password="授权用户密码",
  -> master_log_file="主库binlog日志文件名",
  -> master_log_pos=binlog日志文件偏移量;
  d 启动slave进程
  e 查看进程状态信息
  相关命令
  mysql> show  slave  status;  # 显示从库状态信息
  mysql> show master status;  #显示本机的binlog日志文件信息
  mysql> show  processlist;  #查看当前数据库服务器上正在执行的程序
  mysql> start  slave ; #启动slave 进程
  mysql> stop  slave ; #停止slave 进程
  2.4 在客户端测试主从同步配置
  2.4.1  在主库服务器上添加访问数据时,使用连接用户
  2.4.2  客户端使用主库的授权用户,连接主库服务器,建库表插入记录
  2.4.3  在从库本机,使用管理登录查看是否有和主库一样库表记录及授权用户
  2.4.4 客户端使用主库的授权用户,连接从库服务器,也可以看到新建的库表及记录
  +++++++++++++++++++++++++++++++
  三、mysql主从同步的工作原理
  从库数据库目录下的文件:
  master.info  记录主库信息
  主机名-relay-bin.XXXXXX  中继日志文件,记录主库上执行过的sql命令
  主机名-relay-bin.index 索引文件,记录当前已有的中继日志文件
  relay-log.info  中继日志文件,记录当前使用的中继日志信息
  从库IO线程 和SQL线程的作用?
  IO线程  把主库binlog日志里的sql命令记录到本机的中继日志文件
  SQL线程  执行本机中继日志文件里的sql命令,把数据写进本机。
  IO线程报错原因: 从库连接主库失败(ping   grant   firewalld  selinux)
  从库指定主库的日志信息错误(日志名   偏移量)
  Last_IO_Error: 报错信息
  修改步骤:
  mysql> stop  slave;
  mysql>  change  master  to   选项="值";
  mysql> start  slave;
  SQL线程报错原因: 执行本机中继日志文件里的sql命令,用到库或表在本机不存在。
  Last_SQL_Error: 报错信息
  设置从库暂时不同步主库的数据?
  在从库上把slave 进程停止
  mysql> stop  slave;
  把从库恢复成独立的数据库服务器?
  ]# rm -rf  /var/lib/mysql/master.info
  ]# systemctl  restart mysqld

  ]# rm  -rf   主机名-relay-bin.XXXXXX   主机名-relay-bin.index  >  四、mysql主从同步结构模式
  一主一从  
  一主多从
  主从从
  主主结构(又称作互为主从)
  五、mysql主从同步常用配置参数
  主库服务器在配置文件my.cnf 使用的参数
  ]#vim /etc/my.cnf
  [mysqld]
  binlog_do_db=库名列表   #只允许同步库Binlog_Ignore_DB=库名列表    #只不允许同步库
  ]#  systemctl  restart  mysqld
  从库服务器在配置文件my.cnf 使用的参数
  ]# vim /etc/my.cnf
  [mysqld]
  log_slave_updates
  #级联复制
  relay_log=中继日志文件名
  replicate_do_db=库名列表   #只同步的库
  replicate_ignore_db=库名列表   #只不同步的库
  :wq
  ]#  systemctl  restart  mysqld
  配置mysql主从从结构
  主库  192.168.4.51
  从库  192.168.4.52 ( 做51主机从库)
  从库  192.168.4.53 ( 做53主机从库)
  要求:客户端访问主库51 时 创建库表记录 在52 和53 数据库服务器都可以看到
  配置步骤:
  一、环境准备
  主从同步未配置之前,要保证从库上要有主库上的数据。
  禁用selinux    ]#  setenforce  0
  关闭防火墙服务]# systemctl  stop firewalld
  物理连接正常 ]#  ping   -c   2   192.168.4.51/52
  数据库正常运行,管理可以从本机登录
  二、配置主从同步
  2.1 配置主库51
  用户授权
  启用binlog日志
  查看正在使用的日志信息
  2.2 配置从库52
  用户授权
  启用binlog日志,指定server_id  和 允许级联复制
  查看正在使用的日志信息
  验证主库的授权用户
  管理员登录指定主库信息
  启动slave进程
  查看进程状态信息
  2.3  配置从库53
  验证主库的授权用户
  指定server_id
  管理员登录指定主库信息
  启动slave进程
  查看进程状态信息
  三、客户端验证配置
  3.1 在主库上授权访问gamedb库的用户
  3.2 客户端使用授权用户连接主库,建库、表、插入记录
  3.3 客户端使用授权用户连接2台从库时,也可以看到主库上新的库表记录
  六、mysql主从同步复制模式
  异步复制
  全同步复制
  半同步复制
  查看是否可以动态加载模块
  mysql> show variables like  "have_dynamic_loading";
  主库安装的模块
  mysql> INSTALL PLUGIN rpl_semi_sync_master  SONAME 'semisync_master.so';
  从库安装的模块
  mysql>  INSTALL PLUGIN rpl_semi_sync_slave  SONAME 'semisync_slave.so';
  查看系统库下的表,模块是否安装成功
  mysql>
  SELECT   PLUGIN_NAME ,  PLUGIN_STATUS
  FROM   INFORMATION_SCHEMA.PLUGINS
  WHERE
  PLUGIN_NAME  LIKE   '%semi%';
  启用半同步复制模式
  主库
  mysql> SET GLOBAL rpl_semi_sync_master_enabled = 1;
  从库
  mysql> SET GLOBAL rpl_semi_sync_slave_enabled = 1;
  查看半同步复制模式是否启用
  mysql>  show  variables  like  "rpl_semisync%_enabled";
  修改配置文件/etc/my.cnf 让安装模块和启用的模式永久生效。
  主库
  vim /etc/my.cnf
  [mysqld]
  plugin-load=rpl_semi_sync_master=semisync_master.so
  rpl_semi_sync_master_enabled=1
  :wq
  从库
  vim /etc/my.cnf
  [mysqld]
  plugin-load=rpl_semi_sync_slave=semisync_slave.so
  rpl_semi_sync_slave_enabled=1
  :wq
  既做主又做从
  vim /etc/my.cnf
  [mysqld]
  plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
  rpl-semi-sync-master-enabled = 1
  rpl-semi-sync-slave-enabled = 1
  :wq


运维网声明 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-612713-1-1.html 上篇帖子: Confluence 6 下载和安装 MySQL 驱动 下篇帖子: ​MySQL NDB Cluster维护
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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