繁体   English   中英

gitlab ci:mysql建立和还原数据库转储

[英]gitlab ci: mysql build and restore db dump

在gitlab.yml中

mysql_build:
  stage: build
  variables:
    MYSQL_DATABASE: rates
    MYSQL_ROOT_PASSWORD: root
  services:
  - mysql:latest
  image: mysql
  before_script:
  - mysql --version
  script:
  - echo "SELECT 'OK';" | mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" --host=mysql "${MYSQL_DATABASE}"
  - mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" rates < db/rates_db.sql

它已成功安装mysql,但我想还原sql dump文件以在下一阶段访问它。

开始这部分时,我有一个例外:

 - mysql --user=root --password="${MYSQL_ROOT_PASSWORD}" rates < db/rates_db.sql

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

实际应用程序位于此处

https://gitlab.com/armdev/exchange-rates

如何在mysql中还原数据库?

初始化一个新实例

当容器启动的第一次,具有指定名称的新数据库将被创建并与所提供的配置变量初始化。 此外,它将执行在/docker-entrypoint-initdb.d中找到的扩展名为.sh,.sql和.sql.gz的文件。 文件将按字母顺序执行。 您可以通过将SQL转储安装到该目录中并为自定义图像提供贡献的数据来轻松地填充mysql服务。 默认情况下,SQL文件将导入到MYSQL_DATABASE变量指定的数据库中。

尝试这个

Dockerfile

FROM mysql

ENV MYSQL_DATABASE rates
ENV MYSQL_ROOT_PASSWORD root

COPY db/rates_db.sql /docker-entrypoint-initdb.d/

替换为gitlab-ci.yml

mysql_build:
  stage: build
  script:
    - docker build . -t <Image name>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM