ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

20211112_mysql_8.0docker部署踩坑

2021-11-12 19:02:10  阅读:285  来源: 互联网

标签:8.0 20211112 -- MYSQL wi mysql home docker


1. Failed to initialize DD Storage Engine
这个错误应该是要删除 /var/lib/mysql 下你的数据文件才行, 如果你的data挂载出来就删除挂载的目录
2. Different lower_case_table_names settings for server ('0') and data dictionary ('1').
这个可以说是8.0的一个经典错误了, 在docker-compose下怎么部署都不行, 除非你不加这一句 lower_case_table_names=1 
但是不加这一句的话, 项目中又使用了定时任务, 定时任务的表名都是大写的 
两种解决方案: 
1. 让开发在生成表的时候, 全部改成小写的表名; 
2. 使用docker run来运行, 不要使用docker-compose
 
docker run语句:
docker pull mysql:8.0.22 #拉镜像 --不用dockerfile文件, 拉完镜像直接run 
docker run --name us-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456789 -d \
-v /home/wi/mysql/conf:/etc/mysql/conf.d \
-v /home/wi/mysql/data:/var/lib/mysql \
-v /home/wi/mysql/logs:/logs \
-v /home/wi/mysql/sql:/home/sql \
--network wi_default \
-e MYSQL_ROOT_PASSWORD=123456789 \
-e TZ="Asia/Shanghai" \
-v /etc/localtime:/etc/localtime:ro \
--restart=always \
mysql:8.0.22 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \
--lower_case_table_names=1 #就是这个, 这句话一定要加在最后, 最少要加在镜像的后面

 

不要想着用docker-compose来部署, 没有用的, 比如下面的命令, 我试了各种方法, 直接用docker-compose不行的:
version : '3.8'
services: 
# mysql 8      
  us-mysql:
    container_name: us-mysql
    image: mysql:8.0.22
    # build:
    #   context: ./mysql
    ports:
      - "3306:3306"
    restart: always
    volumes:
      # - /home/wi/mysql/my.cnf:/etc/mysql/my.cnf
      - /home/wi/mysql/conf:/etc/mysql/conf.d
      - /home/wui/mysql/data:/var/lib/mysql
      - /home/wi/mysql/logs:/logs
      - /home/wi/mysql/sql:/home/sql
    command:  #这个命令通过配置文件完成
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      # --lower_case_table_names=1   #这一句就是万恶之源
      --max_allowed_packet=128M 
    # command:
    #   -- apt-get update
    #   -- apt-get install vim
    environment:
      TZ: Asia/Shanghai
      MYSQL_DATABASE: 'us'
      MYSQL_ROOT_PASSWORD: 123456789 
      # MYSQL_USER: users
      # MYSQL_PASSWORD: users
    networks:
      - persist

#networks
networks:
    persist:
      external:
        name: wi_default

 


标签:8.0,20211112,--,MYSQL,wi,mysql,home,docker
来源: https://www.cnblogs.com/wxylog/p/15545982.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有