因为现公司设备服务器天天产生14万,接近15万条数据,在运维服务器端同时也须要处理设备服务器的数据,因此部署了主从两台mysql服务,实现读写分离。大体架构以下图
Mysql中有一种叫作bin(二进制)的日志,这个日志记录了主Mysql服务器执行的全部Sql语句。
一、主服务必须启用二进制日志,记录修改数据的事件 二、从服务器开启一个线程,经过一个线程,请求主服务的二进制日志文件中的事件 三、主服务器启动一个线程,检查本身二进制日志中的事件,跟对方请求的位置对比,若是不带位置参数请求,则主节点就会从第一个日志文件中的第一个事件一个个发给从服务器 四、从服务器收到主服务器发送过来的数据放到中继日志(Relay log)文件中,并记录该请求到主服务器的具体哪一个日志文件的哪一个位置 五、从节点启动一个,把Relay log中的事件读取出来 ,并在本地执行一次
一、启用二进制日志 二、为当前节点设置一个全局惟一的server_id 三、建立有复制权限的用户帐号 REPLIACTION SLAVE ,REPLIATION CLIENT。
一、启用中继日志 二、为当前节点设置一个全局惟一的server_id 三、使用有权限的用户帐号链接到主服务,并启动复制线程
主Mysql:172.18.0.2 从Mysql: 172.18.0.3 Mysql版本:5.7.28 运行环境:docker 一、编辑主Mysq配置文件
二、添加配置 添加:log-in=mysql-bin 添加:server-id=5 添加:replicate-do-db=main_db 添加:innodb_file_per_table=ON 添加:skip_name_resolve=ON
三、启动服务,查看主Mysql日志状态
四、查看主Mysql服务状态
五、建立备份权限的用户
六、刷新权限
七、编辑从服务 修改myl.cnf文件
八、修改配置 添加:relay-log=relay-log 添加:relay-log-index=relay-log.index 添加:server-id=23 添加:innodb_file_per_table=ON 添加:skip_name_resolve=ON 添加:replicate-do-db=main_db
九、查看从Mysql服务日志信息
十、在从Mysql服务配置访问主节点的参数信息 添加主Mysql 访问主Mysql服务的用户名和密码,主Mysql的二进制信息 查看主Mysql服务当前日志信息:
十一、启动同步服务
十二、查看同步服务
1三、Mysql同步服务在这里配置完成。