当前位置: 首页 > news >正文

使用 docker 一键部署 MySQL

目录

1. 前期准备

2. 导入镜像

3. 创建部署脚本文件

4. MySQL 服务器配置文件模板

5. 执行脚本创建容器

6. 后续工作

7. 基本维护


1. 前期准备

        新部署前可以从仓库(repository)下载 MySQL 镜像,或者从已有部署中的镜像生成文件:

# 查看当前本地镜像
docker images
# 生成本地镜像文件
docker save <IMAGE ID> -o mysql_8023.tar

2. 导入镜像

# 在新部署的机器上导入镜像
docker load -i mysql_8023.tar
docker images

3. 创建部署脚本文件

mysql-deploy.sh 文件内容如下:

#!/bin/bash# 生成目录
mkdir -p /usr/local/docker/mysql/mysql-files
mkdir -p /usr/local/docker/mysql/conf
mkdir -p /usr/local/docker/mysql/logs
mkdir -p /usr/local/docker/mysql/data# 将配置文件复制到相应目录
cp /root/my.cnf.template /usr/local/docker/mysql/conf/my.cnf# 修改属主
chown -R polkitd:root /usr/local/docker/mysql/# 创建容器
docker run -p 3306:3306 \-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \-v /usr/local/docker/mysql/conf:/etc/mysql \-v /usr/local/docker/mysql/logs:/var/log/mysql \-v /usr/local/docker/mysql/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=root \--name mysql \--restart=always \-e TZ=Asia/Shanghai \-d cbe8815cbea8

4. MySQL 服务器配置文件模板

my.cnf.template 文件内容如下:

[mysqld]
max_allowed_packet = 1G
explicit_defaults_for_timestamp=0
lower_case_table_names=1
log_timestamps=SYSTEM
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
binlog_expire_logs_seconds=259200
secure_file_priv=''
log_bin_trust_function_creators=on
character-set-server = utf8mb4
default_authentication_plugin=mysql_native_password
datadir=/var/lib/mysql/
socket=/var/run/mysqld/mysqld.sockwait_timeout=30
innodb_buffer_pool_size = 4G
max_connections = 1000default-time-zone = '+8:00'port = 3306
skip-name-resolve innodb_print_all_deadlocks=1
log_output='table'server-id = 2955innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120gtid-mode = offlocal_infile=0
log_error='/var/lib/mysql/master.err'
skip_symbolic_links=yes[mysqldump]
quick
max_allowed_packet = 1G[mysqld_safe]
open-files-limit = 8192

5. 执行脚本创建容器

./mysql-deploy.sh

6. 后续工作

# 进入容器
docker exec -it mysql /bin/bash
# 登录 MySQL
mysql -uroot -proot -S /var/lib/mysql/mysqld.sock
# 创建用户
create user dba identified by '123456';
grant all on *.* to dba with grant option;

7. 基本维护

# 查看镜像
docker images
# 查看容器
docker ps
# 查看容器详细信息
docker inspect <CONTAINER ID>
# 重启容器
docker restart mysql
# 停止容器
docker stop mysql
# 删除容器
docker rm mysql
http://www.lryc.cn/news/100917.html

相关文章:

  • MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式
  • Linux操作系统1-命令篇
  • opencv-24 图像几何变换03-仿射-cv2.warpAffine()
  • 前端常用的条件限制方法小笔记
  • 【LeetCode 算法】Minimum Operations to Halve Array Sum 将数组和减半的最少操作次数-Greedy
  • Doc as Code (3):业内人士的观点
  • 【Kafka】消息队列Kafka基础
  • Java的第十五篇文章——网络编程(后期再学一遍)
  • 【深度学习】High-Resolution Image Synthesis with Latent Diffusion Models,论文
  • 前端学习——Vue (Day6)
  • STM32MP157驱动开发——按键驱动(tasklet)
  • PostgreSQL构建时间
  • 2023-将jar包上传至阿里云maven私有仓库(云效制品仓库)
  • 嵌入式linux之OLED显示屏SPI驱动实现(SH1106,ssd1306)
  • 关于element ui 安装失败的问题解决方法、查看是否安装成功及如何引入
  • Selenium多浏览器处理
  • 浅谈 AI 大模型的崛起与未来展望:马斯克的 xAI 与中国产业发展
  • 【CesiumJS材质】(1)圆扩散
  • 实战-单例模式和创建生产者相结合
  • [SQL挖掘机] - 窗口函数介绍
  • 原生js实现锚点滚动顶部
  • 使用mysql接口遇到点问题
  • excel绘制折线图或者散点图
  • ChatGPT长文本对话输入方法
  • FFmpeg-swresample的更新
  • 回答网友 修改一个exe
  • 数据可视化 - 动态柱状图
  • 【JVM】JVM五大内存区域介绍
  • 自动驾驶感知系统--惯性导航定位系统
  • Netty简介