MySQL的安装与配置
Docker 安装 MySQL
经过 Docker 搭建 MySQL 数据库环境,同时能同时启动多个 MySQL 版本。在安装前,最好上 docker 官网上看一下 MySQL 的版本,更具具体需求版本安装 MySQL,假设你已经搭建好 Docker 环境下面介绍如何建立一个 MySQL 服务器实例。html
快速启动一个 MySQL 服务实例
下面,咱们经过经过 docker 镜像,或者 MySQL 官方镜像,进行快速启动一个实例。mysql
$ docker search mysql
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
mysql MySQL is a widely used, open-source relation… 9968 [OK]
# MySQL 官方镜像
$ docker image pull mysql:8.0.21
拉取镜像成功之后,就能够在本机看到这个 image 文件了。sql
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.21 e1d7dc9731da 6 days ago 544MB
如今,快速运行这个 image 文件。docker
# Docker 官方镜像
$ docker run --name mysql8 \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=admin \
--rm \
-d mysql:8.0.21 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
上面命令的各个参数含义以下:数据库
--name mysql8 容器的名字叫作 mysql8
-p 3306:3306 容器 MySQL 默认端口 3306 射到本机的 3306 端口。
-d 在后台运行容器并打印容器ID。
--rm 中止运行后,自动删除容器文件。
-e MYSQL_ROOT_PASSWORD=admin 设置环境变量 MYSQL_ROOT_PASSWORD 值为 admin 来设置 root 密码,更多环境变量参考。
--character-set-server=utf8mb4 --collation-server=utf8mb4_col 该命令以默认字符集 utf8mb4 和数据库默认排序规则 utf8mb4 启动 MySQL 服务,能够将许多配置选项做为标志传递给 mysqld。这将使您能够灵活地自定义容器,而无需 cnf 配置文件,配置 MySQL Server 的另外一种方法是准备一个配置文件,并将其安装在容器内服务器配置文件的位置。有关详细信息,请参见持久数据和配置更改。
查看容器运行状态服务器
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bce9df21fb98 mysql:8.0.21 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8
使用 docker-compose 部署MySQL
编辑 docker-compose 文件tcp
version: "3.1"
services:
db:
image: mysql:8.0.21
container_name: mysql8
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- 3306:3306
volumes:
- ./conf/my.cnf:/etc/my.cnf
- ./data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: admin
运行容器ide
$ docker-compose up -d
Creating network "docker-mysql_default" with the default driver
Creating mysql8 ... done
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dedd71769326 mysql:8.0.21 "docker-entrypoint.s…" 9 seconds ago Up 4 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql8