使用docker compose一键部署MySQL服务

使用docker compose一键部署MySQL服务

1、创建安装目录

mkdir /data/mysql5.7/  -p && cd /data/mysql5.7

2、创建docker-compose.yml文件

version: '3'
services:
  mysql: 							# 名称
    image: mysql:5.7 				# mysql镜像版本
    container_name: mysql5.7 		# 容器名称
    ports:
      - 3306:3306 					# 指定宿主机端口与容器端口映射关系,宿主机:容器  
    restart: always 				# 表示容器随docker启动自启  
    environment:
      LANG: en_US.UTF-8 			# 设置语言
      MYSQL_USER: xiaopang 			# 自定义创建的用户
      MYSQL_PASSWORD: xiaopang123 	# 自定义创建的用户的密码
      MYSQL_DATABASE: xiaopangpang 	# 自定义创建的库
      MYSQL_ROOT_PASSWORD: 123456 	# root用户密码
    volumes:
      - /etc/localtime:/etc/localtime:ro 	# 同步宿主机时钟与容器的时钟,ro(read only),表示只读。
      - ./mysql/data:/var/lib/mysql			# 映射数据目录
      - ./mysql/my.cnf:/etc/my.cnf			# 映射日志目录

3、创建自定义的mysql配置文件

cat >/data/mysql5.7/mysql/my1.cnf<<-'EOF'
[mysqld]
# MySQL启动用户
user=mysql

# MySQL端口
port = 3306

# 创建新表时将使用的默认存储引擎                     
default-storage-engine=INNODB 

# 设置mysql服务端默认字符集
character-set-server=utf8mb4 

# pid文件所在目录  
#pid-file = /var/run/mysqld/mysqld.pid 
pid-file = /var/lib/mysql/mysql.pid 

# 用于本地连接的socket文件目录
#socket = /var/run/mysqld/mysqld.sock 
socket = /var/lib/mysql/mysql.sock 

# 数据文件存放的目录
datadir = /var/lib/mysql 

# 错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/var/log/mysql/error.log	

# 通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/var/log/mysql/general.log 

# 慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以用来查找查询执行时间长的语句,以便于优化,默认是关闭的
slow_query_log=ON
slow_query_log_file=/var/log/mysql/slow_query.log

#设置超过5秒执行的语句被记录,缺省时为10秒
long_query_time=5												

# Disabling symbolic-links is recommended to prevent assorted security risks

#禁用符号链接以防止各种安全风险
symbolic-links=0

# 定义sql模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION 

# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
max_allowed_packet=16M

# 允许最大连接数
max_connections=1000

# 缓存池大小
# innodb_buffer_pool_size = 12G

# 缓存池实例个数
# innodb_buffer_pool_instances = 10

# TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true

[mysql]
# 设置默认字符集
default-character-set=utf8mb4

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
EOF

4、查看目录结构

tree /data/mysql5.7/

在这里插入图片描述

5、启动docker compose

docker compose up -d

在这里插入图片描述

6、查看进程

docker compose ps

在这里插入图片描述

7、命令行连接测试

docker compose exec mysql /bin/bash

在这里插入图片描述

8、使用root登录查看库和权限

在这里插入图片描述

9、使用navicat工具连接测试

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值