mysql8.0.24配置主从复制

本文介绍了MySQL主从复制的配置方法。首先要确保MySQL版本一致,在 [mysqld] 节点下配置相关参数;接着建立账户并授权,记录Master状态值;然后从机连接主机,启动slave同步。若配置失败,可删除relay_log信息重新配置,最后可测试主从复制效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、配置mysql.conf

mysql版本要一致,主从所有配置项都在 [mysqld] 节点下,小写字母。
打开配置文件,增加以下配置:vim /etc/mysql/conf.d/mysqld.cnf
建议配置前三个就行了,其它看情况。具体参数如下:

[mysql]
# mysql客户端默认字符集
default-character-set=utf8mb4

[mysqld]
# 服务端默认字符集
character-set-server=utf8mb4
# 禁止域名解析,只能使用ip,可以提高性能
# skip-name-resolve
# 3306端口
port = 3306
# 允许最大连接数
max_connections=200
# mysql的安装目录
basedir=/usr/local/mysql
# mysql的数据存放目录
datadir=/usr/local/mysql/data
# 新建表默认存储引擎
default-storage-engine=INNODB

#------主从配置------------
#[必须]主服务器唯一ID
server-id=2
#[必须]启用二进制日志,无后缀的文件名。也可以是本地的路径/log/bin-log
log-bin=bin-log
#[可选]设置需要复制的数据库名称,默认全部记录。
binlog-do-db=test_master
#[可选]设置不要复制的数据库
binlog-ignore-db=test
#[可选] 0(默认)表示读写(主机),1表示只读(从机)
#read-only=1
#设置日志文件保留的时长,单位是秒
binlog_expire_logs_seconds=6000
#控制单个二进制日志大小。此参数的最大和默认值是1GB
max_binlog_size=200M
#[可选]设置binlog格式(STATEMENT是基于sql语句的复制,ROW是基于行的复制,MIXED是混合模式)
binlog_format=STATEMENT

2、建立账户并授权

#登录mysql
mysql -uroot -p

# 创建一个用户名slave1,密码123456
CREATE USER 'slave1'@'%' IDENTIFIED BY '123456';
# 授权
GRANT REPLICATION SLAVE ON *.* TO 'slave1'@'%';
#此语句必须执行。否则报错
ALTER USER 'slave1'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 使权限生效
flush privileges;

执行sql语句。用来查询Master的状态,并记录下File和Position的值。

show master status;

将出现如图:

 注意:执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化。

3、从机:连接主机

主从复制的关键一步。执行以下sql语句。

CHANGE MASTER TO
MASTER_HOST='192.168.47.131',
MASTER_USER='slave1',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='bin-log.000001',
MASTER_LOG_POS=1367;

执行sql语句。用来启动slave同步

#用来启动slave同步
START SLAVE;

#执行sql语句,检查主从同步是否搭建成功
SHOW SLAVE STATUS\G;

 看到两个Yes就说明配置成功。

如果配置不成功,可以执行如下操作,删除之前的relay_log信息,然后重新执行 CHANGE MASTER TO …语句配置。

reset slave; #删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件

如果失败了,请检查配置、防火墙、账号密码等。

接下来,可以自己去主库创建test_master库,再创建些数据,然后去从库查看是否也有相同的数据库和数据。

启动主从:start slave;
停止主从:stop slave;
重新配置主从:reset master; #删除Master中所有的binglog文件,并将日志索引文件清空,重新开始所有新的日志文件(慎用)

<think>好的,用户想知道如何在本地环境中部署MySQL数据库,需要提供一个教程。我需要根据提供的引用内容来整理步骤。首先,引用里提到了不同版本的部署,比如5.7、5.6,还有8.0的版本,还有使用Docker的方法。用户可能使用的是Linux或者Windows系统,但引用中更多是Linux相关的,比如引用2和3提到了从库登录测试和yum仓库的配置,引用5是Docker的方法。可能需要分步骤说明不同的部署方式,比如使用包管理器安装,手动安装,或者Docker部署。 首先,需要确定用户的操作系统。不过用户的问题是在“本地环境”,可能包括多种系统,但引用中的例子主要是Linux,所以可能以Linux为例。不过引用4也提到有Windows、macOS的选项,可能需要简要提到。但用户的问题可能更关注具体的步骤,所以可能需要分不同系统来回答。 引用3提到了使用yum仓库安装MySQL 8.0,引用1提到5.7版本的部署,引用5是Docker方式。可能需要整理出几种方法:1. 使用包管理器安装(如yum或apt),2. 手动下载安装包安装,3. 使用Docker部署。每种方法的具体步骤。 首先,针对Linux系统,使用yum安装的话,步骤可能包括下载仓库配置,安装服务器,启动服务,设置开机启动,修改密码等。例如引用3中的wget下载rpm包,然后安装。可能需要详细说明这些步骤,比如添加官方仓库,然后安装。 对于手动安装,可能需要下载适合的安装包,解压,配置环境变量,初始化数据库,启动服务等,但引用中没有详细步骤,可能需要参考标准流程。 Docker部署的话,引用5给出了docker run命令,设置root密码,端口映射,加密方式等。这部分可以详细说明命令的参数和作用,比如-d后台运行,--name容器名称,-e设置环境变量,-p端口映射等。 此外,引用4提到访问MySQL官网下载安装包,选择适合的操作系统版本,比如Windows的安装程序,可能需要下载后图形化安装。这部分可能需要简要说明,但用户可能更关注命令行方式的部署,比如Linux下的步骤。 还需要注意初始化配置,比如安全设置,创建用户,设置权限等。例如引用2中测试从库登录,可能需要配置用户权限和密码。但用户的问题是本地部署,可能主要是单机安装,所以这部分可能不需要主从复制的内容,但可能需要基本的配置步骤,比如运行mysql_secure_installation。 还要考虑不同版本的差异,比如MySQL 5.7和8.0的安装步骤可能不同,比如初始化方式,默认认证插件的变化。例如引用5中使用了identified=mysql_native_password,可能因为8.0默认使用caching_sha2_password,需要调整以兼容旧客户端。 总结步骤可能包括: 1. 使用包管理器安装(如yum或apt) - 添加MySQL仓库 - 安装MySQL服务器 - 启动服务并设置开机启动 - 获取临时密码或设置root密码 - 运行安全脚本 2. 手动安装(适用于特定版本) - 下载安装包 - 安装依赖 - 解压并安装 - 初始化数据库 - 启动服务 3. Docker部署 - 安装Docker - 拉取MySQL镜像 - 运行容器并配置参数 另外,可能还需要在安装后连接到MySQL,创建数据库和用户,配置远程访问等基本操作。 需要检查引用中的具体命令,例如引用3中的wget命令下载的是特定版本的rpm包,然后安装。而使用yum仓库的话可能需要先配置仓库源,再安装。引用1提到5.7版本的部署,可能步骤类似,但仓库地址不同。 可能还需要提到安装后的初始配置,比如修改root密码,删除匿名用户,禁止远程root登录等,这些可以通过mysql_secure_installation脚本来完成。 对于Docker部署,需要注意数据持久化,可以使用卷来保存数据,避免容器删除后数据丢失。引用5中的命令没有指定-v参数,可能需要补充说明。 最后,要生成相关问题,例如如何修改root密码,如何配置远程访问,如何备份数据库等。</think>### 本地环境 MySQL 数据库部署教程 #### 方法一:通过包管理器安装(以 Linux 为例) 1. **添加 MySQL 官方仓库** 根据系统版本选择对应的仓库配置。例如,CentOS/RHEL 9 可使用以下命令添加 MySQL 8.0 仓库: ```bash wget http://mirrors.ustc.edu.cn/mysql-repo/yum/mysql-8.0-community/el/9/x86_64/mysql-community-server-8.0.33-1.el9.x86_64.rpm [^3] sudo rpm -ivh mysql-community-server-8.0.33-1.el9.x86_64.rpm ``` 2. **安装 MySQL 服务** 使用 `yum` 或 `apt` 安装: ```bash sudo yum install mysql-community-server ``` 3. **启动服务并设置开机自启** ```bash sudo systemctl start mysqld sudo systemctl enable mysqld ``` 4. **获取初始密码** 首次安装后,MySQL 会生成临时 root 密码,可通过以下命令查看: ```bash sudo grep 'temporary password' /var/log/mysqld.log ``` 5. **运行安全配置脚本** 修改 root 密码并强化安全设置: ```bash sudo mysql_secure_installation ``` --- #### 方法二:手动安装(适用于 Windows/macOS/Linux) 1. **下载安装包** 访问 [MySQL 官网](https://dev.mysql.com/downloads/mysql/),选择适合操作系统的安装包(如 Windows 的 MSI 安装程序或 macOS 的 DMG 文件)[^4]。 2. **执行安装向导** - **Windows/macOS**:运行安装程序,按提示选择“Developer Default”或“Server Only”模式。 - **Linux**:解压 `.tar` 包并配置环境变量,例如: ```bash tar -xvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz mv mysql-8.0.33 /usr/local/mysql ``` 3. **初始化数据库** ```bash mysqld --initialize --user=mysql ``` 4. **启动服务** ```bash sudo systemctl start mysql ``` --- #### 方法三:Docker 部署(跨平台通用) 1. **拉取 MySQL 镜像** ```bash docker pull mysql:8.0.24 ``` 2. **运行容器** 指定 root 密码、端口映射及数据持久化: ```bash docker run -d --name mysql-container \ -e MYSQL_ROOT_PASSWORD=123456 \ -p 3306:3306 \ -v /path/to/data:/var/lib/mysql \ mysql:8.0.24 [^5] ``` 3. **验证容器状态** ```bash docker ps | grep mysql ``` --- #### 基础配置与验证 1. **登录 MySQL** ```bash mysql -u root -p ``` 2. **创建测试数据库** ```sql CREATE DATABASE testdb; SHOW DATABASES; ``` 3. **配置远程访问(可选)** ```sql CREATE USER 'user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON testdb.* TO 'user'@'%'; FLUSH PRIVILEGES; ``` --- §§ 相关问题 §§ 1. 如何修改 MySQL 的 root 密码? 2. 如何通过 Docker 实现 MySQL 数据持久化? 3. 如何解决 MySQL 8.0 的客户端兼容性问题? 4. 如何配置 MySQL 主从复制?[^2] 5. 如何通过 yum 仓库降级安装 MySQL 5.7?[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值