一、使用docker命名直接安装
1、拉取镜像
# 拉取最新版本的镜像命令
docker pull mysql
# 拉取指定版本的镜像命令
docker pull mysql:8.0
2、拉起镜像
# 不挂载路径拉起镜像命令
docker run -id --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --restart=always mysql:8.0
# 挂载路径拉起镜像
docker run -p 3307:3306 --name mysql8 \
-v /home/docker-mysql/log:/var/log/mysql \
-v /home/docker-mysql/data:/var/lib/mysql \
-v /home/docker-mysql/conf/my.cnf:/etc/my.cnf \
-v /home/docker-mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
--restart=always \
-d mysql:8.0
3、my.cnf 文件配置样例
[mysqld]
user=mysql
character-set-server=utf8mb4
# 库名和表名大小写不铭感设置
lower_case_table_names=1
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
二、使用docker-compose命令安装
1、docker-compose文件内容
# docker-compose.yml文件的版本
version: "3"
# 管理的服务
services:
mysql:
image: mysql:8.0.30
container_name: mysql8
environment:
- TZ="Asia/Shanghai"
- LANG=en_US.UTF-8
- LANGUAGE=en_US:en
- MYSQL_ROOT_PASSWORD=123456
healthcheck:
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-uroot", "-p123456"]
interval: 5s
timeout: 3s
retries: 10
# 初始化环境
# env_file:
# - /home/docker-mysql/conf/mysql.env
ports:
- 3307:3306
volumes:
- "/home/docker-mysql/conf/my.cnf:/etc/my.cnf"
- "/home/docker-mysql/log:/var/log/mysql"
- "/home/docker-mysql/data:/var/lib/mysql"
- "/home/docker-mysql/mysql-files:/var/lib/mysql-files"
# 初始化脚本运行路径
# - “/home/docker-mysql/bin/mysql:/docker-entrypoint-initdb.d”
restart: always
2、运行docker-compose文件
# 保存步骤1中的文件,并命名为docker-compose-mysql8.yml
# 进入yml文件所在目录,并运行下列命令
docker-compose -f ./docker-compose-mysql8.yml up -d
三、开放防火墙端口
-
查看防火墙某个端口是否开放
firewall-cmd --query-port=80/tcp
-
开放防火墙端口80
firewall-cmd --zone=public --add-port=80/tcp --permanent
-
关闭80端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent
-
配置立即生效
firewall-cmd --reload
-
开放一段端口
firewall-cmd --zone=public --add-port=8121-8124/tcp --permanent
-
查看开放的端口列表
firewall-cmd --zone=public --list-ports