首页 > 数据库 >MySQL-8.0版本的docker-compose安装脚本(单实例)

MySQL-8.0版本的docker-compose安装脚本(单实例)

时间:2022-10-16 01:55:46浏览次数:63  
标签:8.0 compose 容器 MySQL mysql ###### docker

1. 需求场景

在开发和测试环境中,或者研究型的环境,对于数据库的安全和稳定性可以稍低一些,那么我们可以通过docker快速部署MySQL服务,降低部署的时间成本。

2. 脚本

  • 2.1 目录结构和文件说明
├── conf
│   └── my.cnf  # MySQL配置文件
├── db # 数据库数据文件目录
├── docker-compose.yml # docker-compose.yml文件
└── logs # 日志存放目录
  • 2.2 docker-compose.yml
version: '3'
services:
  mysql:
    restart: always
	privileged: true
    image: mysql:8.0
    container_name: mysqlServer33106
    volumes:
      - ./db:/var/lib/mysql
      - ./conf:/etc/mysql/conf.d
      - ./logs:/logs
    command:
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
    environment:
      MYSQL_ROOT_PASSWORD: "Abc123654"
      MYSQL_USER: "test"
      MYSQL_PASSWORD: "Abc123654"
      MYSQL_INITDB_SKIP_TZINFO: "Asia/Shanghai"
	ports:
      - 33106:3306
    network_mode: "bridge"
  • 2.3 my.cnf
###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock


###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# MySQL8 的密码认证插件
default_authentication_plugin=mysql_native_password

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

# 允许最大连接数
max_connections=1000

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4

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

# 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
lower_case_table_names=0
max_allowed_packet=16M 

# 设置时区
default-time_zone='+8:00'

# binlog 配置
log-bin = /logs/mysql-bin.log
expire-logs-days = 90
max-binlog-size = 500M

# server-id 配置
server-id = 1


###### [client]配置模块 ######
[client]
default-character-set=utf8mb4
  • 2.4 启动容器
启动容器(守护进程):docker-compose up -d
查看容器:docker-compose ps
重启容器:docker-compose restart
清理容器:docker-compose down
注意的坑!!!

第一次启动容器时候的账号密码,会记录在 ./db 目录下,所以当你想要在相同的目录下启动新容器(并设置了新密码),务必将./db 下所有文件删除掉,这样才能用docker-compose.yml中新密码连接数据库。

3. 总结

容器化部署MySQL建议仅用于RD或者开发和测试环境,对于相对重要的数据做好数据备份。生产中可以用公有云的RDS实例,或者在宿主机上部署。

原文链接:https://blog.csdn.net/oschina_41731918/article/details/122837753

标签:8.0,compose,容器,MySQL,mysql,######,docker
From: https://www.cnblogs.com/zhouXX/p/16795526.html

相关文章

  • 在线安装mysql8.0
    wget-i-chttps://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpmyum-yinstallmysql80-community-release-el7-1.noarch.rpm##如果不加--nogpgcheck......
  • 如何解决Navicat连接Mysql数据库时出现1251报错问题
    如何解决Navicat连接Mysql数据库时出现1251报错问题​​一、前言​​​​二、错误信息​​​​三、分析问题​​​​四、解决方法​​一、前言二、错误信息  用Navicat软......
  • MySQL数据库创建
    CREATEDATABASECOOKIE--数据库名字ON(NAME=cookie_dat',--逻辑名称FILENAME='C\data\cookie_dat.mdf'--物理名称SIZE=200--文件初始大小(单位MB)MAXSIZE=1024--......
  • Java Mysql客户端 Mybatis-Plus 4步快速接入
    1,pom增加依赖<dependencies><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>......
  • 基于ajax和mysql的楼市销售系统设计与实现-计算机毕业设计源码+LW文档
    开发语言:Java框架:ssmJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9浏览器:谷歌浏......
  • MYSQL学习
    MYSQL学习笔记一、MYSQL的安装与配置#在LINUX环境下安装mysql#一、先安装MySQLYumRepositorywgethttps://repo.mysql.com//mysql80-community-release-el7-3.noa......
  • Linux下mysql5.7.37升级至mysql5.7.39-RPM安装
    mysql版本5.7.37升级到5.7.39。由于我们由于我们安装mysql的方式是通过mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar中的rpm包安装。所以升级的方式是专门针对这种方式:rpm-iv......
  • Python操作MySQL
    准备安装三方库pipinstallpymysql导入三方库importpymysql将用户输入写入MySQLwhileTrue:user=input("用户名:")passwd=input("密码:")mobile=input("手......
  • MySQL管理
    安装#敬请期待...启动#敬请期待...连接shell连接#敬请期待...phpmyadmin连接#敬请期待...密码重置修改配置文件#敬请期待...命令设置密码#敬请期待...改回配......
  • MySQL开发
    常用数据类型整数:tinyint、int、bigint小数:decimal、字符串:char、varchar、text增insertinto表名(列名,列名)values(值,值);删deletefrom表名;deletefrom表名where条......