{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- Offering: JihuLab.com, 私有化部署
{{< /details >}}
许多应用程序依赖 MySQL 作为其数据库,您可能需要它来运行测试。
使用 Docker 执行器与 MySQL
如果您想使用 MySQL 容器,可以使用 极狐GitLab Runner 和 Docker 执行器。
此示例向您展示如何设置极狐GitLab 用于访问 MySQL 容器的用户名和密码。如果您不设置用户名和密码,则必须使用 root
。
{{< alert type=”note” >}}
在极狐GitLab UI 中设置的变量不会传递给服务容器。有关更多信息,请参阅 极狐GitLab CI/CD 变量。
{{< /alert >}}
-
要指定 MySQL 镜像,请将以下内容添加到您的
.gitlab-ci.yml
文件中:services: - mysql:latest
- 您可以使用在 DockerHub 上可用的任何 Docker 镜像。例如,要使用 MySQL 5.5,请使用
mysql:5.5
。 -
mysql
镜像可以接受环境变量。
- 您可以使用在 DockerHub 上可用的任何 Docker 镜像。例如,要使用 MySQL 5.5,请使用
-
要包括数据库名称和密码,请将以下内容添加到您的
.gitlab-ci.yml
文件中:variables: # 配置 mysql 环境变量 (https://hub.docker.com/_/mysql/) MYSQL_DATABASE: $MYSQL_DATABASE MYSQL_ROOT_PASSWORD: $MYSQL_ROOT_PASSWORD
MySQL 容器使用
MYSQL_DATABASE
和MYSQL_ROOT_PASSWORD
连接到数据库。通过使用变量($MYSQL_DB
和$MYSQL_PASS
)传递这些值,而不是直接调用它们。 -
配置您的应用程序以使用数据库,例如:
Host: mysql User: runner Password: <your_mysql_password> Database: <your_mysql_database>
在此示例中,用户是
runner
。您应该使用有权访问您的数据库的用户。
使用 Shell 执行器与 MySQL
您也可以在手动配置的服务器上使用 MySQL,这些服务器使用极狐GitLab Runner 和 Shell 执行器。
-
安装 MySQL 服务器:
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
-
选择一个 MySQL root 密码并在询问时输入两次。
{{< alert type=”note” >}}
作为安全措施,您可以运行
mysql_secure_installation
来删除匿名用户、删除测试数据库,并禁用 root 用户的远程登录。{{< /alert >}}
-
通过以 root 身份登录 MySQL 来创建用户:
mysql -u root -p
-
创建一个用户(在本例中为
runner
),该用户由您的应用程序使用。在命令中将$password
更改为强密码。在
mysql>
提示符下,输入:CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password';
-
创建数据库:
CREATE DATABASE IF NOT EXISTS `<your_mysql_database>` DEFAULT CHARACTER SET `utf8` \ COLLATE `utf8_unicode_ci`;
-
授予数据库的必要权限:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `<your_mysql_database>`.* TO 'runner'@'localhost';
-
如果一切顺利,您可以退出数据库会话:
\q
-
连接到新创建的数据库以检查一切是否就绪:
mysql -u runner -p -D <your_mysql_database>
-
配置您的应用程序以使用数据库,例如:
Host: localhost User: runner Password: $password Database: <your_mysql_database>