mysql主从服务器


项目服务器框架

MySQL主从复制

  • 什么是主从服务器?
    • 主从复制又叫AB复制,
    • 两台服务器做了主从后,A写入数据,B也会跟着写数据。  
    • 主从基于binlog的,主上需开启binlog进行主从
  • 主从过程
    • 主将更改记录到bin-log中
      • 主 二进制日志(binnary log)
      • 从 中继日志(relay log)
      • 中继 :zhōngjì 处在两条线路之间、把两条线路连接起来的中继站
    • 从库发起连接,连接到主库
    • 主库,创建log dump(日志转储)线程,把bin-log 内容发送到从库中
      • dump转储:就是将动态(易失)的数据,保存为静态的数据(持久数据),如把某一刻的内容,dump成文件
    • 从库,创建IO线程,把主库传来的bin-log内容写入到relay-log中
    • 从库,创建SQL线程,执行relay-log中的内容同步到DB中
  • 主从复制的作用?
    • 热备份,从库作为备份数据库,主库出现问题后可以切换到从库继续工作
      • 拓展:热备份(也称为动态备份或在线备份),这种技术可以在系统正常运行时进行备份,并且可以备份正在使用或编辑的数据库
      • 冷备份,是对数据库进行脱机备份,在备份过程中用户无法访问数据库,但冷备份速度更快更安全。
    • 读写分离,均衡数据库负载
  • 主从复制后主服务器挂了怎么办
    • 将从数据库提升位主库
    • 登录所有的从库,查看master.info文件,对比选择pos最大的作为新的主库    
  • 主从形式
    •     

docker搭建主从mysql

  • 相关连接
    • 1.springboot多数据源配合docker部署mysql主从实现读写分离效果
    • 2.史上最详细Docker部署Mysql主从复制,带每一步骤图!!!
    • 3.docker 安装mysql 主从复制
    • 4.docker 安装mysql并开启远程访问权限
  • 搭建
    • 启动主机mysql
      • docker run -d -p 3306:3306 
        -e MYSQL_ROOT_PASSWORD=tsbx8888
        -e MYSQL_ROOT_HOST=%
        --name mysql-master
        -v /home/mysql-master/data:/var/lib/mysql
        -v /home/mysql-master/conf/my.cnf:/etc/mysql/my.cnf
        -v /home/mysql-master/mysql-files:/var/lib/mysql-files/
        -v /home/mysql-master/logs:/var/log/mysql mysql:8.0.22
      • 命令解释
        • -d:后台运行
        • -p:  (宿主机:容器)  将容器端口映射到宿主主机端口 
        • -name: 将容器命名为 mysql-master
        • -v:  将配置文件挂载到宿主机 
        • -e MYSQL_ROOT_HOST=%  这个选项就是用来设置允许远程访问的。
        • --restart=always 表示此容器开机启动,只要docker也设置了开机自启,docker不死
        • -v /etc/localtime:/etc/localtime 容器时间与宿主机同步
        • --privileged=true 挂载文件权限设置
      • 相关命令
        • docker ps -a #查看全部的容器(运行的加未运行的)
        • docker exec -it 容器ip前两位 bash #进入容器
    • 启动从机mysql

      • docker run -d -p 3307:3306 
        -e MYSQL_ROOT_PASSWORD=tsbx8888
        -e MYSQL_ROOT_HOST=%
        --name mysql-slave -v /home/mysql-slave/data:/var/lib/mysql -v /home/mysql-slave/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql-slave/mysql-files:/var/lib/mysql-files/ -v /home/mysql-slave/logs:/var/log/mysql mysql:8.0.22
    •  

          

Springboot配置主从myql

  • 相关连接
  • 实现的效果,主从搭建完毕,从主库中进行读写,从库实现热备(代码未改动连接主库
                                                  TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
Bing Webmaster Portal Back     此页面的语言为中文(简体)   翻译为        
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语