Using MySQL

原文:https://docs.gitlab.com/ee/ci/services/mysql.html

Using MySQL

由于许多应用程序都依赖 MySQL 作为其数据库,因此最终需要它才能运行测试. 下面将指导您如何使用 GitLab Runner 的 Docker 和 Shell 执行程序执行此操作.

Use MySQL with the Docker executor

如果您将GitLab Runner与 Docker 执行程序一起使用,则基本上已经完成了所有设置.

First, in your .gitlab-ci.yml add:

  1. services:
  2. - mysql:latest
  3. variables:
  4. # Configure mysql environment variables (https://hub.docker.com/_/mysql/)
  5. MYSQL_DATABASE: "<your_mysql_database>"
  6. MYSQL_ROOT_PASSWORD: "<your_mysql_password>"

注意:无法在 GitLab UI 中设置MYSQL_DATABASEMYSQL_ROOT_PASSWORD变量. 要设置它们,请将它们分配给UI 中的变量,然后将该变量分配给.gitlab-ci.ymlMYSQL_DATABASEMYSQL_ROOT_PASSWORD变量.

然后将您的应用程序配置为使用数据库,例如:

  1. Host: mysql
  2. User: root
  3. Password: <your_mysql_password>
  4. Database: <your_mysql_database>

如果您想知道为什么我们对Host使用mysql ,请阅读如何将服务链接到作业的更多信息 .

您还可以使用Docker Hub上可用的任何其他 Docker 映像. 例如,要使用 MySQL 5.5,服务将变为mysql:5.5 .

mysql映像可以接受一些环境变量. 有关更多详细信息,请参阅Docker Hub上的文档.

Use MySQL with the Shell executor

您还可以在手动配置的服务器上使用 MySQL,该服务器通过 Shell 执行程序使用 GitLab Runner.

首先安装 MySQL 服务器:

  1. sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev

选择一个 MySQL 根密码(可以是任何密码),并在询问时键入两次.

注意:作为一项安全措施,您可以运行mysql_secure_installation删除匿名用户,删除测试数据库并以 root 用户禁用远程登录.

下一步是创建用户,因此以 root 用户身份登录 MySQL:

  1. mysql -u root -p

然后创建一个将由您的应用程序使用的用户(在我们的示例中为runner ). 将以下命令中的$password更改$password真实的强密码.

注意:请勿键入mysql> ,这是 MySQL 提示符的一部分.

  1. mysql> CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password';

创建数据库:

  1. mysql> CREATE DATABASE IF NOT EXISTS `<your_mysql_database>` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;

授予对数据库的必要权限:

  1. mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `<your_mysql_database>`.* TO 'runner'@'localhost';

如果一切顺利,您现在可以退出数据库会话:

  1. mysql> \q

现在,尝试连接到新创建的数据库以检查一切是否就绪:

  1. mysql -u runner -p -D <your_mysql_database>

最后,配置您的应用程序以使用数据库,例如:

  1. Host: localhost
  2. User: runner
  3. Password: $password
  4. Database: <your_mysql_database>

Example project

为了方便起见,我们使用公共可共享的运行程序在GitLab.com上运行了一个MySQL 示例项目 .

想要破解吗? 只需对其进行分叉,提交并推送您的更改. 稍后,公共跑步者将选择更改并开始工作.