Connecter MySQL
Datarelix se connecte à MySQL via un service de requêtes en lecture seule. Toutes les requêtes sont validées et exécutées à l’intérieur de ce service — le modèle ne voit jamais les identifiants de connexion et n’exécute jamais de SQL brut sur votre base de données.
Prérequis
- Un serveur MySQL sur une version prise en charge ; vérifiez la version et la politique d’authentification.
- Un utilisateur MySQL en lecture seule disposant de
SELECTsur la base que vous voulez analyser. - Une accessibilité réseau depuis les IP de sortie de Datarelix vers votre serveur MySQL.
Modes d’authentification
Username & password
Authentification MySQL standard par nom d’utilisateur et mot de passe. Le mot de passe est stocké chiffré ; tous les autres champs de connexion sont stockés en configuration simple. Vérifiez le module d’authentification et TLS. Les versions modernes utilisent caching_sha2_password ; la disponibilité de mysql_native_password dépend de la version.
Configuration — créer un utilisateur en lecture seule
Demandez au responsable disposant du droit de créer un utilisateur et d’accorder SELECT d’exécuter cet exemple. Voir la référence CREATE USER.
CREATE USER 'datarelix_reader'@'%' IDENTIFIED BY 'choose-a-strong-password';GRANT SELECT ON your_db.* TO 'datarelix_reader'@'%';Remplacez your_db par le nom réel de votre base. Le joker d’hôte '%' correspond à tous les hôtes et ne remplace pas le pare-feu. Remplacez-le par l’hôte ou le réseau de sortie autorisé ; la syntaxe disponible dépend de la version. Voir les noms de comptes MySQL. Voir la référence GRANT de MySQL pour le modèle de privilèges complet.
Où trouver vos identifiants
| Champ | Où le trouver |
|---|---|
| Host | Votre console cloud — AWS RDS : point de terminaison de l’instance ; GCP Cloud SQL : IP publique ou privée ; Azure Database for MySQL : nom d’hôte du serveur (*.mysql.database.azure.com) |
| Port | 3306 par défaut ; visible dans le panneau d’informations de connexion de votre console cloud |
| Database | Le nom de la base — à lister avec SHOW DATABASES; dans la CLI MySQL |
| Username | L’utilisateur que vous venez de créer |
| Password | Le mot de passe défini dans CREATE USER |
Ce qu’il faut saisir
Host: your-host.example.comPort: 3306Database: your_dbUsername: datarelix_readerPassword: ••••••••Connection string
Collez une URL mysql:// — la chaîne de connexion — au lieu de remplir chaque champ.
Où trouver votre chaîne de connexion
- AWS RDS — console RDS → votre instance de base → Connectivity & security → copiez le point de terminaison, puis composez :
mysql://datarelix_reader:password@endpoint:3306/dbname - PlanetScale — Dashboard → votre base de données → Connect → copiez les informations de connexion
- Railway / Render — panneau des informations de connexion du service de base de données de votre projet
Ce qu’il faut saisir
mysql://datarelix_reader:your-password@your-host.example.com:3306/your_dbSémantique de la portée
MySQL n’a pas de notion de schéma distincte de la base de données — la base est la portée. La connexion est restreinte à la seule base que vous indiquez.
Pour analyser plusieurs bases sur le même serveur MySQL, créez une connexion par base.
Découverte
Entièrement prise en charge. La découverte lit INFORMATION_SCHEMA pour lister les tables, colonnes, clés primaires et clés étrangères.
Vitess / PlanetScale : les bases adossées à Vitess n’appliquent (ni n’exposent) souvent pas les contraintes de clé étrangère, si bien que la découverte renvoie un graphe de relations vide. En l’absence de relations déclarées, vérifiez toute jointure déduite.
Limites
- Une seule base de données par connexion.
- Aucune requête d’écriture ni DDL — Datarelix rejette toute instruction qui n’est pas une lecture avant son exécution.
- Sous Linux, les noms de tables MySQL sont sensibles à la casse par défaut (
lower_case_table_names=0) ; sous Windows et macOS, ils ne le sont pas. La découverte restitue les noms tels que MySQL les stocke. - Les résultats sont plafonnés à 5 000 lignes — les requêtes sans
LIMITen reçoivent un automatiquement.
Dépannage
| Symptôme | Cause probable | Solution |
|---|---|---|
Access denied for user 'X'@'host' | Mauvais identifiants ou hôte non autorisé | Vérifiez le GRANT et les hôtes autorisés pour l’utilisateur ('user'@'%' contre 'user'@'10.%') ; MySQL fait correspondre le couple utilisateur + hôte. Sur Azure, utilisez le nom d’utilisateur simple — Flexible Server n’a pas besoin du suffixe user@servername (il ne concernait que Single Server, retiré du service). |
Unknown database 'X' | Nom de base incorrect | Testez d’abord avec mysql -h host -u user -p X. |
Authentication plugin caching_sha2_password requires secure connection | L’authentification complète nécessite TLS ou un échange RSA pris en charge | Configurez TLS avec le responsable ; ne rétrogradez pas le module d’authentification. |
Authentication plugin 'caching_sha2_password' cannot be loaded | Dépendance du pilote ou configuration d’authentification incompatible | contactez-nous si vous le rencontrez. |
| Résultats vides pour une requête dont vous savez qu’elle correspond à des lignes | Nom de table sensible à la casse sous Linux | Vérifiez le nom exact dans INFORMATION_SCHEMA.TABLES et relancez la découverte. |