docker-compose安装部署mysql5.7.32

该博客介绍了如何使用Docker Compose配置MySQL服务,包括设置环境变量、端口映射和数据持久化。同时,通过init.sql文件初始化数据库,创建用户、数据库及表,并插入默认数据。提供了`docker-compose up -d`和`docker-compose down`命令以启动和停止服务。

vi docker-compose.yml

version: '3'
services:
  mysql:
    restart: always
    image: "mysql:5.7.32"
    container_name: mysql57
    ports:
      - "3306:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --max_allowed_packet=128M
      --sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"
    volumes:
      - /data/mysql/db:/var/lib/mysql
      - /data/mysql/conf/my.cnf:/etc/mysql/my.cnf
      - /data/mysql/init:/docker-entrypoint-initdb.d/

my.cnf

[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

init.sql

init.sql 可以放置在 /data/mysql/init 目录,初始化脚本,非必须。

use mysql;
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
create database test;
use test;
create table user
(
    id int auto_increment primary key,
    username varchar(64) unique not null,
    email varchar(120) unique not null,
    password_hash varchar(128) not null
);
insert into user values(1, "admin","admin@qq.com","passwd");
insert into user values(2, "zhangsan","zhangsan@qq.com","passwd");
insert into user values(3, "lisi","lisi@qq.com","passwd");
docker-compose up -d
docker-compose down

 

 

 

 

### Docker Compose 部署 MySQL 5.7 的配置示例 以下是通过 `docker-compose` 配置并部署 MySQL 5.7 的具体方法: #### 基本配置文件结构 Docker Compose 使用 YAML 文件来定义服务及其依赖关系。对于 MySQL 5.7,可以通过创建名为 `docker-compose.yml` 的文件实现。 ```yaml version: '3.8' services: db: image: mysql:5.7 container_name: mysql_5_7_container restart: always environment: MYSQL_ROOT_PASSWORD: rootpassword MYSQL_DATABASE: testdb MYSQL_USER: user MYSQL_PASSWORD: password ports: - "3306:3306" volumes: - ./data:/var/lib/mysql networks: - app-network networks: app-network: driver: bridge ``` #### 参数说明 - **image**: 定义使用的镜像版本为 `mysql:5.7`[^4]。 - **container_name**: 设置容器名称为 `mysql_5_7_container`。 - **restart**: 当主机重启时自动启动该容器。 - **environment**: 配置环境变量以初始化数据库实例,包括根密码 (`MYSQL_ROOT_PASSWORD`) 和其他用户/数据库设置。 - **ports**: 将宿主机的端口映射到容器内部的默认 MySQL 端口 (3306)[^4]。 - **volumes**: 数据持久化存储路径,将本地目录挂载至容器内的 `/var/lib/mysql` 路径。 - **networks**: 创建一个新的网络用于服务间通信。 #### 启动服务 完成上述配置后,运行以下命令即可启动服务: ```bash docker-compose up -d ``` 此命令将以分离模式启动服务,并在后台运行容器[^3]。 #### 修改权限 如果遇到权限问题(例如无法执行 `docker-compose`),可按照如下方式调整文件权限: ```bash chmod +x /usr/local/bin/docker-compose ``` 或者如果是通过 YUM 安装,则需调整以下路径的权限: ```bash chmod +x /usr/libexec/docker/cli-plugins/docker-compose ``` 以上操作确保了 `docker-compose` 可正常执行[^2]。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值