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端口哦

相关推荐
blessing。。9 分钟前
I2C学习
linux·单片机·嵌入式硬件·嵌入式
2202_7544215424 分钟前
生成MPSOC以及ZYNQ的启动文件BOOT.BIN的小软件
java·linux·开发语言
JH307325 分钟前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
运维&陈同学1 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
周末不下雨2 小时前
win11+ubuntu22.04双系统 | 联想 24 y7000p | ubuntu 22.04 | 把ubuntu系统装到1T的移动固态硬盘上!!!
linux·运维·ubuntu
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
lwprain3 小时前
常用docker应用部署,wordpress、mysql、tomcat、nginx、redis
mysql·docker·tomcat
哎呦喂-ll3 小时前
Linux进阶:环境变量
linux
Rverdoser3 小时前
Linux环境开启MongoDB的安全认证
linux·安全·mongodb