当前位置: 首页 > news >正文

mysql 一主多从环境搭建

前期准备

三台服务器,服务器使用的是 centos7
mysql-5.7.24-linux-glibc2.12-x86_64 安装包 使用是版本是 mysql-5.7.24

数据库安装

将 mysql 安装包上传到三台服务器上,我使用 FlashFXP 作为上传工具
解压安装包
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
创建需要安装的路径,之后移动刚才解压的文件夹,同时重命名
mkdir /app #创建一个文件夹专门用来存放安装的程序
mv mysql-5.7.24-linux-glibc2.12-x86_64 /app/mysql #移动文件并重命名

创建用户组、用户、文件夹、赋权
groupadd mysql #创建用户组
useradd -r -g mysql mysql #创建用户 -r:建立系统账号 -g:指定用户组
cd /app/mysql #切换到安装目录
mkdir data #创建数据存放目录
mkdir mysql-log #创建日志存放目录
mkdir mysql-log/err-log
mkdir mysql-log/slow-log
mkdir mysql-log/bin-log #主机需要此目录
chown -R root:mysql . #将当前目录以及字母里,所有者改变为 mysql,所属组修改为 mysql
chown -R mysql:mysql data
chown -R mysql:mysql mysql-log
配置 /etc/my.cnf
vi /etc/my.cnf
主机配置文件:
[mysqld]
port = 3306 #端口
basedir = /app/mysql #mysql安装路径
datadir = /app/mysql/data/ #mysql数据存放路径

#日志设置
log-error = /app/mysql/mysql-log/err-log/db-err.log #错误日志路径
slow-query-log-file = /app/mysql/mysql-log/slow-log/db-slow.log #慢SQL日志路径
long-query-time = 3 #怎样才算是慢sql,单位是秒

#开启 binlog 同步
server_id = 0001 #一个集群内的 MySQL 服务器 ID,全局唯一
log-bin = /app/mysql/mysql-log/bin-log/db-binlog #开启 Binlog 并写明存放日志的位置
max-binlog-cache_size = 64M #binlog 最大能够使用cache的内存大小
max-binlog-size = 1G #binlog 日志每达到设定大小后,会使用新的 binlog 日志
expire_logs_days = 15 #只保留最近15天的日志
binlog-format = mixed #混合模式复制
innodb_flush_log_at_trx_commit = 2 #和 sync_binlog 控制MySQL磁盘写入策略以及数据安全性
sync-binlog = 500 #控制数据库的binlog刷到磁盘上去

#性能调优配置
innodb_buffer_pool_size = 24576M
max_connections = 5000
max_connect_errors = 6000
external-locking = FALSE
max_allowed_packet = 64M
join_buffer_size = 64M
sort_buffer_size = 2M
read_rnd_buffer_size = 16M

#SQL模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
从机配置文件:
[mysqld]
basedir = /app/mysql
datadir = /app/mysql/data
port = 3306
server_id = 0002 #这里需要在集群中保持唯一

#日志设置
expire_logs_days = 15
long-query-time = 3
slow-query-log-file=/app/mysql/mysql-log/slow-log/db-slow.log
log-error=/app/mysql/mysql-log/err-log/db-err.log

#主从设置
replicate-do-db=db_test #需要从主库同步的数据库1
replicate-do-db=db_dev #需要从主库同步的数据库2
read_only=1 #只读设置

#性能调优设置
innodb_buffer_pool_size = 24576M
max_connections = 5000
max_connect_errors = 6000
external-locking = FALSE
max_allowed_packet = 64M
join_buffer_size = 64M
sort_buffer_size = 2M
read_rnd_buffer_size = 16M

#SQL模式
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
设置链接和服务
cp /app/mysql/support-files/mysql.server /etc/init.d/mysql # 可以使用service mysql start
ln -s /app/mysql/bin/mysql /usr/bin #任何路径可以使用 mysql 命令

相关文章:

  • (C++哈希表01)
  • java springboot监听事件和处理事件
  • C#委托事件的实现
  • RNN文献综述
  • CC2530寄存器编程学习笔记_点灯
  • C编程使用clock函数实现计算一段代码的执行时间:毫秒单位
  • 17.分频器设计拓展练习-任意分频通用模块
  • XML Schema 属性
  • 揭秘:离心风机风量背后的科学原理
  • 没什么事情,随记一下 -出差
  • Labview_压缩文件
  • 关于string的‘\0‘与string,vector构造特点加部分特别知识点的讨论
  • 详细对比Java SPI、Spring SPI 和 Dubbo SPI
  • 【机器学习】特征选择:精炼数据,提升模型效能
  • 暴雨突袭不可不看!水浸传感器作用有这些
  • 网络传输文件的问题
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • 345-反转字符串中的元音字母
  • Android 架构优化~MVP 架构改造
  • Angular数据绑定机制
  • CSS居中完全指南——构建CSS居中决策树
  • Java多态
  • Java面向对象及其三大特征
  • Otto开发初探——微服务依赖管理新利器
  • Python语法速览与机器学习开发环境搭建
  • Sass Day-01
  • select2 取值 遍历 设置默认值
  • Vim 折腾记
  • 阿里云Kubernetes容器服务上体验Knative
  • 从0到1:PostCSS 插件开发最佳实践
  • 订阅Forge Viewer所有的事件
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 实战|智能家居行业移动应用性能分析
  • 一文看透浏览器架构
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (14)Hive调优——合并小文件
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (笔记)M1使用hombrew安装qemu
  • (转)Windows2003安全设置/维护
  • (转)大型网站的系统架构
  • .NET Core 实现 Redis 批量查询指定格式的Key
  • .Net通用分页类(存储过程分页版,可以选择页码的显示样式,且有中英选择)
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • ::
  • @Service注解让spring找到你的Service bean
  • [12] 使用 CUDA 进行图像处理
  • [Android]通过PhoneLookup读取所有电话号码
  • [asp.net core]project.json(2)
  • [Bada开发]初步入口函数介绍
  • [C# 基础知识系列]专题十六:Linq介绍
  • [C++打怪升级]--学习总目录