• cicd环境推mysql问题汇总


    最终流程说明:

    1. dockerfile: 

     1 FROM founder/mysql:5.7
     2 COPY my.cnf /etc/mysql/conf.d/my.cnf
     3 #ADD 1database.sql /docker-entrypoint-initdb.d/1database.sql
     4 
     5 ADD 2pkubaseentity.sql /home/
     6 ADD 3pkubasetriple.sql /home/
     7 COPY start.sh /docker-entrypoint-initdb.d/
     8 RUN chmod a+x /docker-entrypoint-initdb.d/start.sh
     9 
    10 #ADD 2wisekg.sql /docker-entrypoint-initdb.d/2wisekg.sql
    View Code

    2. start.sh

    #!/bin/bash
    mysql -uroot -p?? -e "CREATE DATABASE wisekg DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;"
    mysql -uroot -pasdf -e "use wisekg;source /home/2pkubaseentity.sql;"
    mysql -uroot -pagad -e "use wisekg;source /home/3pkubasetriple.sql;"
    View Code

    3. docker-compose

     1 version: '2'
     2 
     3 services:
     4   db:
     5     image: founder/nlpmysql:${DOCKER_TAG}
     6     restart: always
     7     environment:
     8       MYSQL_ROOT_PASSWORD:
     9       MYSQL_DATABASE:
    10       MYSQL_USER:
    11       MYSQL_PASSWORD:
    12       MYSQL_ALLOW_EMPTY_PASSWORD:
    13     ports:
    14       - '3306:3306'
    15     labels:
    16       io.rancher.container.hostname_override: 'container_name'
    17       io.rancher.scheduler.affinity:host_label: aimysql=true
    18     volumes:
    19       - nlp_mysql_data:/var/lib/mysql
    20 
    21 volumes:
    22   nlp_mysql_data:
    23     driver: ${VOLUME_DRIVER}
    View Code

    4. rancher-compose:

     1 version: '2'
     2 
     3 catalog:
     4   name: Mysql
     5   version: 5.7.0
     6   description: 方正电子 Mysql 公共镜像
     7   category: 数据库
     8   uuid: mysql
     9   questions:
    10     - variable: "MYSQL_DATABASE"
    11       label: "数据库名:"
    12       required: false
    13       default: "test"
    14       type: "string"
    15     - variable: "MYSQL_ROOT_PASSWORD"
    16       label: "Root用户密码:"
    17       required: true
    18       default: "Founder123"
    19       type: "password"
    20     - variable: "MYSQL_USER"
    21       label: "普通用户名:"
    22       required: false
    23       default: "founder"
    24       type: "string"
    25     - variable: "MYSQL_PASSWORD"
    26       label: "普通用户密码:"
    27       required: false
    28       default: "Founder123"
    29       type: "password"
    30     - variable: "MYSQL_ALLOW_EMPTY_PASSWORD"
    31       label: "是否允许密码为空:"
    32       required: false
    33       default: "no"
    34       type: "enum"
    35       options:
    36         - "yes"
    37         - "no"
    38     - variable: "VOLUME_DRIVER"
    39       label: "存储卷驱动:"
    40       description: "选择存储卷驱动类型"
    41       required: true
    42       default: "rancher-nfs"
    43       type: "enum"
    44       options:
    45         - "rancher-nfs"
    46         - "local"
    47 
    48 services:
    49   db:
    50     scale: 1
    51     start_on_create: true
    52     health_check:
    53       healthy_threshold: 2
    54       response_timeout: 2000
    55       port: 3306
    56       unhealthy_threshold: 3
    57       interval: 2000
    58       strategy: recreate
    59       initializing_timeout: 6000000
    60       reinitializing_timeout: 6000000
    View Code

    5. my.cnf

     1 [mysqld]
     2 character-set-server=utf8mb4
     3 collation-server=utf8mb4_unicode_ci
     4 max_allowed_packet=200M
     5 max_connections=1000
     6 connect_timeout=60
     7 lower_case_table_names=1
     8 innodb_buffer_pool_instances=8
     9 innodb_buffer_pool_size = 1G
    10 innodb_page_cleaners=8
    11 [client]
    12 default-character-set=utf8mb4
    13 
    14 [mysql]
    15 default-character-set=utf8mb4
    View Code

    问题汇总;

    1.

     不能把start.sh运行,放到initdb下让他自己运行。

    2. 每次重新部署的时候,一定要把之前栈里的服务给删掉,要不然重新部署的时候start.sh不生效。(流程见第3点)

     

    3. 为什么数据不全。

    当设置初始化时间6000s时候,发现服务启动成功,但是初始化数据不全。

    其实他的流程是这样的:  先初始化mysql,和数据,6000s过后,数据没加载全,那么重新初始化,结果第二次初始化的时候db这个服务名是存在的,所以就没有进行start.sh。导致直接启动了mysql。然后正常running,导致了我们所现在看到了running但是数据不全的场景。

  • 相关阅读:
    自定义IP原来如此简单
    [转]如何在NIOS II中读写EPCS剩余空间
    坏了的芯片居然又好了一片,太神奇了
    今天报废两片EP3C5E144
    Quartus II 订购版 v10.1 正式推出下载
    发现用JTAG下载程序到EPCS比用AS方式下载速度快
    如何解决No EPCS layout data looking for section [EPCSXXXXXX]
    QII丰衣足食
    Why does my Cyclone III FPGA fail to access the EPCS device using the EPCS Controller module?
    <转载>在.NET中基于Windows消息的IPC实现
  • 原文地址:https://www.cnblogs.com/dhName/p/12970930.html
Copyright © 2020-2023  润新知