首页 > 数据库 >docker-compose安装mysql8+踩坑版

docker-compose安装mysql8+踩坑版

时间:2023-11-02 21:47:30浏览次数:36  
标签:容器 mysql8 宿主机 mysql home 坑版 docker

一、拉取MySQL镜像

我这里使用的是MySQL8.0.18,可以自行选择需要的版本。

docker pull mysql:8.0.18

二、创建挂载目录

mkdir -p /home/docker/mysql8/log
mkdir -p /home/docker/mysql8/data
mkdir -p /home/docker/mysql8/conf.d

三、添加配置文件my.cnf (没有特殊需求可以跳过)

这里需要给MySQL做点自定义的配置,比如时区字符编码等。

vi /home/docker/mysql8/conf.d/my.cnf
###### [client]配置模块 ######
[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql
# 设置sql模式 sql_mode模式引起的分组查询出现*this is incompatible with sql_mode=only_full_group_by,这里最好剔除ONLY_FULL_GROUP_BY
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
server-id = 1

# MySQL8 的密码认证插件 如果不设置低版本navicat无法连接
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'

四、编写 docker-compose.yml 文件

version: '3'
services:
  mysql: # 服务名称
    image: mysql:8.0.18 # 或其它mysql版本
    container_name: mysql8 # 容器名称
    environment:
      - MYSQL_ROOT_PASSWORD=123456 # root用户密码
#      - TZ=Asia/Shanghai # 设置容器时区 我这里通过下面挂载方式同步的宿主机时区和时间了,这里忽略
    volumes:
      - /home/docker/mysql8/log:/var/log/mysql # 映射日志目录,宿主机:容器
      - /home/docker/mysql8/data:/var/lib/mysql # 映射数据目录,宿主机:容器
      - /home/docker/mysql8/conf.d:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
      - /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题,ro是read only的意思,就是只读。
    ports:
      - 3306:3306 # 指定宿主机端口与容器端口映射关系,宿主机:容器
    restart: always # 容器随docker启动自启

五、启动容器

docker-compose up -d

标签:容器,mysql8,宿主机,mysql,home,坑版,docker
From: https://www.cnblogs.com/Galaxy1/p/17806388.html

相关文章

  • Docker desktop for win/windows Debug Mode: false/true | Trouble Shooting | diagn
    Eventually,usingthedocker-D-ldebugsettingfortheclientIhavefoundthelogoutputs(apparentlycurrentlytherearenodebuglevelmessagesimplementedasreported.docker-DinfoDebugModedocker-Dversiondocker-D-ldebugC:\Users\[u......
  • windows docker安装
    windows11为例安装wls(默认为新版本wsl2,也推荐wsl2)在终端(PowerShell)开启wlsEnable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Hyper-V-All下载dockerdesktop(dockerforwindows)下载地址:https://www.docker.com/get-started/(不用FQ)......
  • docker使用阿里镜像加速
    登录阿里云,打开控制台 选择容器镜像服务 选择镜像加速器 ......
  • angie docker 镜像试用
    主要是试用下官方的docker镜像环境准备docker-composeversion:"3"services:angie:image:docker.angie.software/angie:1.3.1-rockyports:-"80:80"-"443:443"启动&效果启动do......
  • 阿里云服务器 ubuntu 20.04 执行命令添加apt仓库时报错 安装docker报错
    云服务器ECS初始安装docker报错##############出错时候看下面#####################执行命令添加apt仓库时:sudoadd-apt-repositoryppa:ondrej/php&&sudoapt-getupdate报错:sudo:add-apt-repository:commandnotfound解决办法:先执行:apt-get-yinstallsoftware-pro......
  • Docker 中使用Selenium Grid
    第一步拉取hub镜像:dockerpullselenium/hub拉取chrome浏览器镜像:dockerpullselenium/node-chrome启动hub:dockerrun-p5001:4444-d--namehubselenium/hubdockerrun--name=hub-p5001:4444-eGRID_TIMEOUT=0-eGRID_THROW_ON_CAPABILITY_NOT_PRESENT=true-e......
  • Docker打包前端vue代码推送镜像到远程仓库
    Docker打包前端vue代码推送镜像到远程仓库目录Docker打包前端vue代码推送镜像到远程仓库业务场景:......
  • Docker 可视化容器管理平台--portainer
    Portainer是一个开源的轻量级容器管理工具,用于简化Docker容器的部署、管理和监控。它提供了一个直观易用的WebUI,允许用户通过可视化界面来管理Docker容器、镜像、卷等资源,而无需使用Docker命令行工具。Portainer可以部署在本地Docker环境、远程Docker主机或Docker......
  • seafile docker部署
    #docker-compose.ymlservices:db:image:mariadb:10.11container_name:seafile-mysqlenvironment:-MYSQL_ROOT_PASSWORD=12345678#Requested,settheroot'spasswordofMySQLservice.-MYSQL_LOG_CONSOLE=truesecurity_op......
  • 在使用docker-compose build一个faq服务Helpy 时报错
    Helpy时报错如下:ERROR:failedtosolve:process"/bin/sh-cbundleinstall--withouttestdevelopment"didnotcompletesuccessfully:exitcode:11ERROR:Service'helpy'failedtobuild:Buildfailed有两种解释这种报错1、修改dockerfile ruby:2.5,然后......