doc-locale/fr-fr/ci/services/mysql.md
{{< details >}}
{{< /details >}}
De nombreuses applications dépendent de MySQL comme base de données, et vous pourriez en avoir besoin pour exécuter vos tests.
Si vous souhaitez utiliser un conteneur MySQL, vous pouvez utiliser GitLab Runner avec l'exécuteur Docker.
Cet exemple vous montre comment définir un nom d'utilisateur et un mot de passe que GitLab utilise pour accéder au conteneur MySQL. Si vous ne définissez pas de nom d'utilisateur et de mot de passe, vous devez utiliser root.
[!note] Les variables définies dans l'interface utilisateur de GitLab ne sont pas transmises aux conteneurs de service. Pour plus d'informations, consultez les variables CI/CD GitLab.
Pour spécifier une image MySQL, ajoutez ce qui suit à votre fichier .gitlab-ci.yml :
services:
- mysql:latest
mysql:5.5.mysql peut accepter des variables d'environnement. Pour plus d'informations, consultez la documentation Docker Hub.Pour inclure le nom de la base de données et le mot de passe, ajoutez ce qui suit à votre fichier .gitlab-ci.yml :
variables:
# Configure mysql environment variables (https://hub.docker.com/_/mysql/)
MYSQL_DATABASE: $MYSQL_DB
MYSQL_ROOT_PASSWORD: $MYSQL_PASS
Le conteneur MySQL utilise MYSQL_DATABASE et MYSQL_ROOT_PASSWORD pour se connecter à la base de données. Transmettez ces valeurs en utilisant les variables CI/CD GitLab ($MYSQL_DB et $MYSQL_PASS dans l'exemple ci-dessus), plutôt que de les appeler directement.
Configurez votre application pour utiliser la base de données, par exemple :
Host: mysql
User: runner
Password: <your_mysql_password>
Database: <your_mysql_database>
Dans cet exemple, l'utilisateur est runner. Vous devez utiliser un utilisateur disposant des autorisations nécessaires pour accéder à votre base de données.
Vous pouvez également utiliser MySQL sur des serveurs configurés manuellement qui utilisent GitLab Runner avec l'exécuteur Shell.
Installez le serveur MySQL :
sudo apt-get install -y mysql-server mysql-client libmysqlclient-dev
Choisissez un mot de passe root MySQL et saisissez-le deux fois lorsqu'on vous le demande.
[!note] Par mesure de sécurité, vous pouvez exécuter
mysql_secure_installationpour supprimer les utilisateurs anonymes, supprimer la base de données de test et désactiver les connexions distantes de l'utilisateur root.
Créez un utilisateur en vous connectant à MySQL en tant que root :
mysql -u root -p
Créez un utilisateur (dans ce cas, runner) utilisé par votre application. Remplacez $password dans la commande par un mot de passe fort.
À l'invite mysql>, saisissez :
CREATE USER 'runner'@'localhost' IDENTIFIED BY '$password';
Créez la base de données :
CREATE DATABASE IF NOT EXISTS `<your_mysql_database>` DEFAULT CHARACTER SET `utf8` \
COLLATE `utf8_unicode_ci`;
Accordez les autorisations nécessaires sur la base de données :
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, CREATE TEMPORARY TABLES, DROP, INDEX, ALTER, LOCK TABLES ON `<your_mysql_database>`.* TO 'runner'@'localhost';
Si tout s'est bien passé, vous pouvez quitter la session de base de données :
\q
Connectez-vous à la base de données nouvellement créée pour vérifier que tout est en place :
mysql -u runner -p -D <your_mysql_database>
Configurez votre application pour utiliser la base de données, par exemple :
Host: localhost
User: runner
Password: $password
Database: <your_mysql_database>
Pour consulter un exemple MySQL, créez une duplication de cet exemple de projet. Ce projet utilise des runners d'instance disponibles publiquement sur GitLab.com. Mettez à jour le fichier README.md, commitez vos modifications et consultez le pipeline CI/CD pour le voir en action.