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

相关推荐
[听得时光枕水眠]10 分钟前
MySQL基础(三)DQL(Data Query Language,数据查询语言)
数据库·mysql·oracle
Gaoithe3 小时前
ubuntu 端口复用
linux·运维·ubuntu
德先生&赛先生3 小时前
Linux编程:1、文件编程
linux
程序猿小D4 小时前
第16节 Node.js 文件系统
linux·服务器·前端·node.js·编辑器·vim
一只叫煤球的猫4 小时前
MySQL 8.0 SQL优化黑科技,面试官都不一定知道!
后端·sql·mysql
寒山李白4 小时前
MySQL安装与配置详细讲解
数据库·mysql·配置安装
多多*4 小时前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
zhangzhangkeji6 小时前
(33)课54--??:3 张表的 join-on 连接举例,多表查询总结。
mysql
IT界小黑的对象6 小时前
virtualBox部署ubuntu22.04虚拟机 NAT+host only 宿主机ping不通虚拟机
linux·运维·服务器