Centos 7 通过Docker 安装MySQL 8.0.33实现数据持久化及my.cnf配置

一、docker 启动MySQL容器实现数据持久化

要在 CentOS 7 上使用 Docker 启动 MySQL 8.0.33,并配置 MySQL 的 my.cnf 文件,同时实现 MySQL 数据的持久化,可以按照以下步骤进行操作:

1、安装 Docker:确保你在 CentOS 7 上已经安装了 Docker。如果尚未安装,请按照 Docker 官方文档提供的说明进行安装。

2、创建持久化存储目录:为了实现数据持久化,我们将创建一个用于存储 MySQL 数据的目录。假设我们将其命名为 /opt/mysql_data。在终端中运行以下命令来创建该目录:

sudo mkdir -p /opt/mysql_data

3、拉取 MySQL 镜像:运行以下命令从 Docker Hub 上拉取 MySQL 8.0.33 镜像:

sudo docker pull mysql:8.0.33

4、启动 MySQL 容器:运行以下命令启动 MySQL 容器,同时挂载持久化存储目录和自定义 my.cnf 文件:

需要提前手动新建/path/to/my.cnf文件,

----因为我有个性化的需求,需要将/path/to/my.cnf 文件中的设置为server_id=2(无此需求,可忽略)

启动docker 容器

sudo docker run -d --name mysql-container \
  -v /opt/mysql_data:/var/lib/mysql \
  -v /path/to/my.cnf:/etc/mysql/my.cnf \
  -e MYSQL_ROOT_PASSWORD=123456 \
  -p 3305:3306 \
  mysql:8.0.33
  • 将 /opt/mysql_data 替换为你创建的持久化存储目录路径。
  • 将 /path/to/my.cnf 替换为我自定义的 my.cnf 文件路径。
  • 将 your_password 替换为你要设置的 MySQL root 密码。

我的密码为 123456

/path/to/my.cnf

端口为3305

5、验证配置:等待片刻,MySQL 容器将启动并加载自定义的 my.cnf 文件。可以通过连接到 MySQL 容器来验证配置是否生效:

sudo docker exec -it mysql-container mysql -u root -p

输入之前设置的密码后,进入 MySQL 客户端。

密码为123456

6、在 MySQL 客户端中执行以下命令验证 server_id 配置是否已设置为 2:

SHOW VARIABLES LIKE 'server_id';

如果 server_id 的值为 2,则说明 my.cnf 中的配置已成功应用。

现在,MySQL 容器已经在 CentOS 7 上以持久化方式运行,并且使用了自定义的 my.cnf 配置文件,其中 server_id 的值为 2。

请注意,每次修改 my.cnf 文件后,都需要重启 MySQL 容器才能使更改生效:

sudo docker restart mysql-container

二、 设置MySQL容器支持远程访问

默认情况下,Docker 的容器网络使用桥接模式,因此容器内的服务只能通过容器的 IP 地址进行访问。你需要修改容器的防火墙规则,允许来自远程主机的连接。

**1、**进入docker-mysql容器,进入MySQL

sudo docker exec -it mysql-container mysql -u root -p

密码123456

2、重新设置一下密码

sql 复制代码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

3、刷新权限

sql 复制代码
flush privileges;

4、开启远程访问并修改默认密码和加密方式

sql 复制代码
alter user 'root'@'%' identified with mysql_native_password by 'root';

现在就可以远程连接了,使用服务的ip 地址,及3305端口号,账号 root 密码123456

记得服务器要对外开放3305端口哦

相关推荐
Ven%1 分钟前
centos查看硬盘资源使用情况命令大全
linux·运维·centos
桀桀桀桀桀桀18 分钟前
数据库中的用户管理和权限管理
数据库·mysql
TeYiToKu1 小时前
笔记整理—linux驱动开发部分(9)framebuffer驱动框架
linux·c语言·arm开发·驱动开发·笔记·嵌入式硬件·arm
dsywws1 小时前
Linux学习笔记之时间日期和查找和解压缩指令
linux·笔记·学习
yeyuningzi1 小时前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
上辈子杀猪这辈子学IT1 小时前
【Zookeeper集群搭建】安装zookeeper、zookeeper集群配置、zookeeper启动与关闭、zookeeper的shell命令操作
linux·hadoop·zookeeper·centos·debian
minihuabei1 小时前
linux centos 安装redis
linux·redis·centos
lldhsds2 小时前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp3 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君3 小时前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别