Aller au contenu

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 SELECT sur 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

ChampOù le trouver
HostVotre 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)
Port3306 par défaut ; visible dans le panneau d’informations de connexion de votre console cloud
DatabaseLe nom de la base — à lister avec SHOW DATABASES; dans la CLI MySQL
UsernameL’utilisateur que vous venez de créer
PasswordLe mot de passe défini dans CREATE USER

Ce qu’il faut saisir

Host: your-host.example.com
Port: 3306
Database: your_db
Username: datarelix_reader
Password: ••••••••

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_db

Sé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 LIMIT en reçoivent un automatiquement.

Dépannage

SymptômeCause probableSolution
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 incorrectTestez d’abord avec mysql -h host -u user -p X.
Authentication plugin caching_sha2_password requires secure connectionL’authentification complète nécessite TLS ou un échange RSA pris en chargeConfigurez TLS avec le responsable ; ne rétrogradez pas le module d’authentification.
Authentication plugin 'caching_sha2_password' cannot be loadedDépendance du pilote ou configuration d’authentification incompatiblecontactez-nous si vous le rencontrez.
Résultats vides pour une requête dont vous savez qu’elle correspond à des lignesNom de table sensible à la casse sous LinuxVérifiez le nom exact dans INFORMATION_SCHEMA.TABLES et relancez la découverte.