73 lines
2.2 KiB
Markdown
73 lines
2.2 KiB
Markdown
![]() |
## 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
|