当前位置:首页 > 编程笔记 > 正文
已解决

docker部署容器化mysql5.7

来自网友在路上 159859提问 提问时间:2023-11-11 23:07:53阅读次数: 59

最佳答案 问答题库598位专家为你答疑解惑

部署MySQL

本教程将指导您如何在Docker环境中部署MySQL数据库,并展示如何通过外部MySQL客户端与之交互。

步骤 1: 准备环境

首先,我们需要在本地环境中创建必要的文件夹结构来存储MySQL的配置、日志和数据。

# 在终端创建mysql文件夹及其子文件夹
mkdir -p mysql/{conf,logs,data}# 创建配置文件 my.cnf,内容在下文中
cd mysql/conf
vim my.cnf
步骤 2: 获取MySQL镜像

使用Docker搜索并拉取MySQL镜像:

# 搜索mysql镜像
docker search mysql# 拉取mysql 5.7版本的镜像
docker pull mysql:5.7
步骤 3: 部署MySQL容器

运行以下命令来创建并启动MySQL容器,同时设置端口映射和目录映射:

# 创建并启动mysql容器
docker run -id \
-p 3306:3306 \
--name=mysql57 \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD='your_password' \
mysql:5.7
详解端口和目录映射:
  • $PWD:当前工作目录,此变量会解析为所在目录的绝对路径。
  • -p 3306:3306:将容器的3306端口映射到宿主机的3306端口。
  • -v 参数:用于目录映射,确保容器内部数据的持久化。
    • $PWD/conf:/etc/mysql/conf.d:映射 conf 目录。
    • $PWD/logs:/logs:映射 logs 目录。
    • $PWD/data:/var/lib/mysql:映射 data 目录。
  • -e MYSQL_ROOT_PASSWORD:设置MySQL的root用户密码。
步骤 4: 访问MySQL容器

使用Docker命令进入容器内部,并通过MySQL命令行工具进行操作:

# 登录MySQL容器
docker exec -it mysql57 bash# 连接MySQL数据库
mysql -uroot -p'your_password'
外部访问容器内的MySQL

由于容器内的网络服务默认与外部环境隔离,我们通过端口映射来实现外部访问。

  • 宿主机和容器间的通信通过映射端口实现。
  • 访问宿主机的3306端口即相当于访问容器内部的MySQL服务。
配置文件 my.cnf

conf 文件夹中创建 my.cnf 配置文件,内容如下:

[mysqld]sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'# skip-grant-tablesevent_scheduler = 1bind-address=0.0.0.0port=3306user=mysqlbasedir=/usr/local/mysqldatadir=/var/lib/mysqlsocket=/tmp/mysql.sockcharacter_set_server=utf8mb4collation-server=utf8mb4_unicode_ciexplicit_defaults_for_timestamp=truelower_case_table_names=1# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Settings user and group are ignored when systemd is used.# If you need to run mysqld under a different user or group,# customize your systemd unit file for mariadb according to the# instructions in http://fedoraproject.org/wiki/Systemd[mysqld_safe]log-error=/data/mysql/mysql.errpid-file=/data/mysql/mysql.pid## include all files from the config directory#!includedir /etc/my.cnf.d

确保配置文件中的路径和设置与您的环境相匹配。
有任何问题欢迎私信我或者加我的联系方式,我会很乐于交流!

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"docker部署容器化mysql5.7":http://eshow365.cn/6-38000-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!