MySQL Community Server (mysql)
Base relationnelle pour les services qui exigent MySQL. Autonome ou réplication GTID (une source, des réplicas).
Généré depuis catalog/services/mysql.yaml : ne pas modifier à la main.
Résumé
| |
|---|
| Version | 8.4.5 |
| Usage | installer et configurer |
| Couche | infrastructure (présentée à part) |
| Catégorie | Plateformes de données |
| Méthodes d'installation | podman, package |
| Connexion externe | mysql |
| Réservé au bac à sable | non |
Licence
| |
|---|
| Identifiant SPDX | GPL-2.0-only |
| Politique de licence | exception de licence |
| Exception de licence | LEX-003 (en attente de la décision du client) |
| Composant de la plateforme | mysql |
Paquets et artefacts
Un paquet que publie le projet du service (son image, son archive binaire, son paquet Python ou système) porte la licence du service ; un paquet tiers porte la licence écrite sur sa ligne, lue dans les métadonnées officielles du projet amont.
| Type | Paquet | Version | Licence | Détails |
|---|
| image de conteneur | docker.io/library/mysql | 8.4.5 | GPL-2.0-only | clé d'image mysql, utilisée par mysqld, condensé sha256:679e7e924f38a3cbb62a3d7df32924b83f7321a602d3f9f967c01b3df18495d6 |
| paquet système | mysql-community-server | version du dépôt configuré | GPL-2.0-only | famille RHEL (dnf) |
| paquet système | mysql-community-client | version du dépôt configuré | GPL-2.0-only | famille RHEL (dnf) |
| paquet système | mysql-server | version du dépôt configuré | GPL-2.0-only | famille Debian (apt) |
| paquet système | mysql-client | version du dépôt configuré | GPL-2.0-only | famille Debian (apt) |
Les images sont épinglées par étiquette dans le descripteur, et par condensé (digest) quand le descripteur en déclare un (le bundle hors ligne refuse alors une image téléchargée qui ne le porte pas) ; le condensé est enregistré dans le miroir du Manager à l'import du bundle hors ligne, et chaque téléchargement ou chargement est vérifié par rapport à lui.
Systèmes et architectures pris en charge
| Méthode | Systèmes d'exploitation | Architectures |
|---|
podman | famille RHEL (dnf), famille Debian (apt), Arch Linux (pacman) | x86_64, aarch64 (non restreintes par le descripteur) |
package | famille RHEL (dnf), famille Debian (apt) | x86_64, aarch64 (non restreintes par le descripteur) |
Systèmes hôtes certifiés : RHEL 8/9/10, Rocky Linux 8/9/10, AlmaLinux 8/9/10, Oracle Linux 8/9, CentOS Stream 9/10, Ubuntu 22.04/24.04, Debian 12, Arch Linux (rolling). Le contrôle préalable des hôtes accepte ces systèmes (une autre version d'une famille connue donne un avertissement, une version en fin de vie est refusée) et les architectures x86_64 et aarch64.
Prérequis
Hôte
- au moins 2048 Mo de mémoire (bloquant,
memory).
Réseau et ports
| Composant | Nom du port | Port | Ouvert dans le pare-feu de l'hôte |
|---|
mysqld | sql | 3306/tcp | oui |
Services et connexions nécessaires
Ce service n'a aucune dépendance.
Méthodes et modes d'installation
| Méthode | Défaut | Ce que la méthode utilise |
|---|
podman | oui | les images de conteneur du descripteur, exécutées par Podman sous systemd |
package | - | les paquets système du descripteur, installés par le gestionnaire de paquets de l'hôte |
Composants
| Composant | Type | Méthodes d'installation | Ports |
|---|
Serveur MySQL (mysqld) | maître | podman, package | 3306/tcp |
Serveur unique (standalone) (par défaut)
Un seul serveur MySQL.
Ce que le mode déploie :
| Composant | Placement |
|---|
mysqld | min 1, max 1 |
Réplication GTID (replication)
Le premier hôte est la source, les autres hôtes sont des réplicas GTID en lecture seule.
Ce que le mode déploie :
| Composant | Placement |
|---|
mysqld | min 2, recommandé 3 |
Installer ce service
L'assistant d'installation du Navin Manager planifie, valide et exécute l'installation ; il faut la permission services:install sur le cluster.
-
Ouvrez l'assistant. Dans Clusters, choisissez l'action de ligne Installer des services du cluster cible. L'assistant s'ouvre sur sa première étape, Service.
-
Choisissez le service. À l'étape Service, sélectionnez MySQL Community Server. La carte affiche la licence GPL-2.0-only. Choisissez la Méthode parmi podman, package (par défaut podman). Pour enregistrer à la place un service mysql existant de votre organisation, activez Utiliser un service externe existant.
-
Choisissez les hôtes et le mode. À l'étape Hôtes, cochez les hôtes, puis choisissez le Mode : standalone (par défaut), replication. Chaque mode déploie les composants listés dans Méthodes et modes d'installation.
-
Liaisons. Ce service n'a aucune dépendance : l'étape Liaisons n'a rien à lier.
-
Configurez. À l'étape Configuration, relisez les paramètres (voir Paramètres de configuration). Les mots de passe laissés vides avec une valeur générée par défaut sont générés et scellés par le Manager.
-
Relisez et installez. À l'étape Installation, le Manager valide le plan et affiche l'ordre d'installation ; quand il indique « Le plan est valide. Prêt pour l'installation. », choisissez Installer. Un mode hautement disponible n'est installé que si ses contrôles HA réussissent.
-
Vérifiez. L'opération se termine quand les contrôles de santé de chaque instance réussissent (voir Contrôles de santé) ; le service apparaît alors en marche dans Services.
Haute disponibilité
Topologie par mode
| Modes | Niveau le plus haut du catalogue | Répartition | Composant du quorum | Domaines de panne | Description |
|---|
standalone | autonome (standalone) | unique (single) | - | 1 | Un serveur MySQL. |
replication | ha (ha) | actif-passif (active-passive) | - | 2 | Une source et des réplicas GTID en lecture seule (asynchrones) ; promouvoir un réplica est une opération manuelle. |
Remarques
- Le mode du catalogue est une réplication GTID asynchrone sans bascule automatique. La bascule automatique demande InnoDB Cluster (Group Replication, MySQL Shell et MySQL Router, 3 membres ou plus), que ce mode ne déploie pas.
Paramètres de configuration
Réseau
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Port (port) | port | 3306 | - | non | non | non | Port TCP du serveur SQL. |
Réglages
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Pool de tampons InnoDB (innodb_buffer_pool_mb) | int | 1024 | min 128, MB | non | non | oui | Cache InnoDB, environ la moitié de la mémoire de l'hôte. (recommandé clamp(round(host.memory_mb * 0.5), 256, 262144)) |
Connexions maximales (max_connections) | int | 500 | min 20, max 100000 | non | non | non | Nombre maximal de connexions clientes. |
Sécurité
| Paramètre | Type | Défaut | Valeurs permises | Obligatoire | Secret | Redémarrage | Description |
|---|
Mot de passe root (root_password) | password | généré | - | non | oui | non | Mot de passe de root@localhost, utilisé seulement par les commandes d'exploitation. |
TLS (tls_enabled) | bool | false | - | non | non | oui | Servir le port SQL uniquement en TLS (require_secure_transport) avec le certificat émis par l'autorité de la console ; les réplicas répliquent en TLS et vérifient le certificat de la source. |
Mot de passe de réplication (replication_password) | password | généré | - | non | oui | non | Mot de passe de l'utilisateur de réplication des réplicas. |
Points d'accès
| Point d'accès | Schéma | Composant | Port | Chemin | Paramètre TLS | Paramètres de liaison | Secrets de liaison | Commande de provisionnement |
|---|
sql | mysql | mysqld | 3306 (port) | - | tls_enabled | database, username, tls | password | provision_consumer |
Commandes
| Commande | Composant | Cible | Description |
|---|
Provisionner la base d'un consommateur (provision_consumer) | mysqld | premier hôte | Crée ou met à jour l'utilisateur et la base d'un service consommateur (idempotent). |
Démarrer la réplication (setup_replication) | mysqld | tous les hôtes | Fait pointer chaque réplica vers la source avec le positionnement GTID automatique et le démarre. |
État des réplicas (replica_status) | mysqld | tous les hôtes | Exécute SHOW REPLICA STATUS sur chaque serveur. |
Liste des processus (processlist) | mysqld | premier hôte | Affiche les sessions en cours. |
Paramètres des commandes
| Commande | Paramètre | Type | Défaut | Obligatoire | Description |
|---|
provision_consumer | Base de données (database) | string | - | oui | Base de données du consommateur. |
provision_consumer | Utilisateur (username) | string | - | oui | Utilisateur du consommateur. |
provision_consumer | Mot de passe (password) | password | - | oui | Mot de passe de l'utilisateur (dérivé par consommateur). |
Contrôles de santé
Vivacité (par instance)
| Composant | Contrôle | Détails |
|---|
mysqld | TCP {{ host.ip or '127.0.0.1' }}:{{ config.port }} | 90 tentatives ; intervalle 2 s ; délai 3 s |
Disponibilité (contrôle du service)
| Contrôle | Détails |
|---|
TCP {{ host.ip or '127.0.0.1' }}:{{ config.port }} | - |
Contrôles préalables
| Contrôle | Type | Signification | Sévérité | Composants |
|---|
memory | memory_mb {"min": 2048} | au moins 2048 Mo de mémoire | bloquant | tous les composants |
sql_port_free | port_free {"param": "port"} | port 3306 libre sur l'hôte | bloquant | tous les composants |
Sauvegarde et restauration
Export logique cohérent (mysqldump --single-transaction) de toutes les bases hors schémas système, pris sur le premier serveur (le primaire du mode réplication) et rejoué avec le client mysql (P5C-008, moteurs mysql_dump et mysql_restore). Les comptes restent dans le schéma mysql du serveur.
| |
|---|
| Format | mysql-dump |
| Composant | mysqld |
| Fichiers | {{ backup.dir }}/dump.sql |
| Test de restauration | non |
| Instances arrêtées pendant la restauration | non |
Désinstallation
Chemins supprimés quand les données sont purgées : {{ paths.data }}, {{ paths.log }}.
Documentation amont