gitlab-org--gitlab-foss/doc/ci/services/mysql.md

73 lines
2.2 KiB
Markdown
Raw Normal View History

## Using MySQL
It's possible to use MySQL database test your apps during builds.
### Use MySQL with Docker executor
If you are using our Docker integration you basically have everything already.
1. Add this to your `.gitlab-ci.yml`:
services:
- mysql
variables:
# Configure mysql service (https://hub.docker.com/_/mysql/)
MYSQL_DATABASE: hello_world_test
MYSQL_ROOT_PASSWORD: mysql
2. Configure your application to use the database:
Host: mysql
User: root
Password: mysql
Database: hello_world_test
3. You can also use any other available on [DockerHub](https://hub.docker.com/_/mysql/). For example: `mysql:5.5`.
Example: https://gitlab.com/gitlab-examples/mysql/blob/master/.gitlab-ci.yml
### Use MySQL with Shell executor
It's possible to use MySQL on manually configured servers that are using GitLab Runner with Shell executor.
1. First install the MySQL server:
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
# Pick a MySQL root password (can be anything), type it and press enter
# Retype the MySQL root password and press enter
2. Create an user:
mysql -u root -p
# Create a user which will be used by your apps
# do not type the 'mysql>', this is part of the prompt
# change $password in the command below to a real password you pick
mysql> CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password';
# Ensure you can use the InnoDB engine which is necessary to support long indexes
# If this fails, check your MySQL config files (e.g. `/etc/mysql/*.cnf`, `/etc/mysql/conf.d/*`) for the setting "innodb = off"
mysql> SET storage_engine=INNODB;
# Create the database
mysql> CREATE DATABASE IF NOT EXISTS `hello_world_test` DEFAULT CHARACTER SET `utf8` COLLATE `utf8_unicode_ci`;
# Grant necessary permissions on the database
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `hello_world_test`.* TO 'runner'@'localhost';
# Quit the database session
mysql> \q
3. Try to connect to database:
sudo -u gitlab-runner -H mysql -u runner -p -D hello_world_test
4. Configure your application to use the database:
Host: localhost
User: runner
Password: $password
Database: hello_world_test