Code Ease Code Ease
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档

神秘的鱼仔

你会累是因为你在走上坡路
  • 个人博客网站 (opens new window)
  • 好用的工具网站 (opens new window)
  • Java核心基础
  • 框架的艺术
  • 分布式与微服务
  • 开发经验大全
  • 设计模式
  • 版本新特性
数据库系列
大数据+AI
  • xxl-job
运维与Linux
  • 基于SpringBoot和BootStrap的论坛网址
  • 基于VuePress的个人博客网站
  • 基于SpringBoot开发的小功能
  • 做一个自己的IDEA插件
程序人生
关于我
  • 分类
  • 标签
  • 归档
服务器
  • 技术相关

  • 安装文档

    • Nginx安装文档
    • ClickHoust搭建文档
    • ElasticSearch搭建文档
    • JDK8在线及离线安装
    • MySQL单机主从离线部署
      • 下载安装文件
      • 单机版安装
      • 主从搭建
    • Kibana搭建文档
    • Python3.9及3.10安装文档
  • 计算机与Linux
  • 安装文档
CodeEase
2025-01-23
目录

MySQL单机主从离线部署

作者:鱼仔
博客首页: codeease.top (opens new window)
公众号:Java鱼仔

# 下载安装文件

首先下载MySQL的安装文件,本次教程使用的是 mysql-8.0.28-el7-x86_64.tar.gz

下载地址为:https://downloads.mysql.com/archives/get/p/23/file/mysql-test-8.0.28-el7-x86_64.tar.gz (opens new window)

# 单机版安装

首先将文件放到安装目录下,本次安装目录为 /usr/local

cd /usr/local
tar -zxvf mysql-8.0.28-el7-x86_64.tar.gz
mv mysql-8.0.28-el7-x86_64 mysql
1
2
3

接着创建数据文件夹和日志文件夹

mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/logs
1
2

创建一个MySQL用户和组,并授权MySQL目录

groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
1
2
3

修改MySQL的配置文件

vi /etc/my.cnf
1
[mysql]
default-character-set=utf8mb4
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/logs/mysql.log
socket=/usr/local/mysql/mysql.sock
event_scheduler=ON
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/logs/mysql-slow.log
long_query_time = 1
default-authentication-plugin=mysql_native_password
server-id=1
log-bin=mysql-bin
max_connect_errors=1000
binlog_format=STATEMENT
log-error=/usr/local/mysql/logs/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
character-set-server=utf8mb4
lower_case_table_names=1
max_connections=5000
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8mb4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

修改完成后通过 !wq 保存。

最后进行安装

/usr/local/mysql/bin/mysqld --initialize --user=mysql --lower_case_table_names=1
1

查看密码并记录

cat /usr/local/mysql/logs/mysql.log | grep password
1

创建软链接

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
ln -s /usr/local/mysql/bin/mysql /usr/bin/
1
2

启动MySQL

service mysqld start
1

当出现SUCCESS表示安装完成。

接着进入MySQL进行配置

mysql -uroot -p
1

提示输入密码则将上面保存下来的初始化密码输入。

进入后设置root账号

alter user 'root'@'localhost' IDENTIFIED with mysql_native_password by 'mysql.123456';
update mysql.user set host='%' where user='root';
flush privileges;
1
2
3

至此,单机版就安装完成了。

# 主从搭建

首先按照单机版的部署教程在另外一台服务器部署MySQL

需要注意的是,从库的配置文件和主库略有不同

[mysql]
default-character-set=utf8mb4
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/logs/mysql.log
socket=/usr/local/mysql/mysql.sock
event_scheduler=ON
slow_query_log = ON
slow_query_log_file = /usr/local/mysql/logs/mysql-slow.log
long_query_time = 1
default-authentication-plugin=mysql_native_password
server-id=2
relay-log=mysql-relay
log-error=/usr/local/mysql/logs/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
character-set-server=utf8mb4
lower_case_table_names=1
max_connections=5000
[client]
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8mb4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

主库创建同步账号

create user 'slave'@'%' identified with mysql_native_password by 'mysql.123456';
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
flush privileges;
1
2
3

在主库上获取二进制日志文件名和位置,记录File和Position

show master status;
1

在从库上配置主从同步

change master to master_host='主服务器 IP 或域名',
master_port=主库端口,
master_user='用户名',
master_password='密码',
master_log_file='主服务器上的二进制日志文件名',
master_log_pos=主服务器上的二进制日志文件位置;
1
2
3
4
5
6

如下面这样配置

change master to master_host='192.168.78.131',
master_port=3306,
master_user='slave',
master_password='mysql.123456',
master_log_file='mysql-bin.000003',
master_log_pos=1607;
1
2
3
4
5
6

在从库开启主从同步

start slave;
1

接着在主库新建库、表、插入数据的操作,从库都能实现数据的同步,说明主从搭建完成。

主从一般搭配着读写分离一起使用,另外一种方案是主备方案,读写是在主库中实现,备库负责备份数据以及应对主库发生异常。

上次更新: 2025/02/18, 11:30:08
JDK8在线及离线安装
Kibana搭建文档

← JDK8在线及离线安装 Kibana搭建文档→

最近更新
01
AI大模型部署指南
02-18
02
半个月了,DeepSeek为什么还是服务不可用
02-13
03
Python3.9及3.10安装文档
01-23
更多文章>
Theme by Vdoing | Copyright © 2023-2025 备案图标 浙公网安备33021202002405 | 浙ICP备2023040452号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式