MySQL

Se connecter à MySQL

MySQL peut se rejoindre de plusieurs façons : via une commande dans le terminal, depuis un programme (ex : Node.js), ou via un logiciel graphique comme DBeaver. Chaque système d’exploitation a ses spécificités.

On décortique tout proprement.


🧩 1. Connexion MySQL via terminal (CLI)

🟦 Sous Linux (Debian, Ubuntu, Arch…)

MySQL est généralement déjà accessible via la commande :

mysql -u root -p

Explication :

  • -u root = tu te connectes en tant qu’utilisateur root
  • -p = le terminal te demande ton mot de passe

Si MySQL utilise MariaDB (cas fréquent) :

mariadb -u root -p

Connexion à une base précise :

mysql -u root -p SamiDB

Connexion distante (à ton serveur)

mysql -h IP_DU_SERVEUR -u NOM_UTILISATEUR -p

🟩 Sous macOS

Deux possibilités selon comment MySQL a été installé.

Si tu l’as installé via Homebrew :

mysql -u root -p

Service MySQL :

Démarrr MySQL

brew services start mysql

Arrêter MySQL

brew services stop mysql

Si MySQL vient du package officiel (dmg) :

Tu peux lancer :

/usr/local/mysql/bin/mysql -u root -p

🟥 Sous Windows

Via PowerShell ou CMD

L’exécutable est dans :

C:\Program Files\MySQL\MySQL Server 8.0\bin\

Donc :

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysql.exe -u root -p

Tu peux aussi ajouter ce chemin à la variable d’environnement PATH pour rendre mysql accessible partout.

🔐 2. Connexion via un client graphique (DBeaver, HeidiSQL, MySQL Workbench)

Là, tu renseignes simplement :

  • Host : localhost ou IP du serveur
  • Port : 3306 (par défaut)
  • User : ex. root ou un utilisateur dédié
  • Password : ton mot de passe MySQL
  • Database : facultatif, tu peux en choisir une après connexion

Spécificités par OS

Windows

HeidiSQL est très apprécié : simple, rapide, parfait pour MySQL/MariaDB. MySQL Workbench reste correct mais lourd.

macOS & Linux

DBeaver est la valeur sûre : propre, compatible avec TOUT, open-source.

🌐 3. Connexion MySQL à distance (SSH Tunnel ou direct)

Quand ton MySQL n’est pas exposé en public (ce que tu dois éviter), tu passes par un tunnel SSH.

Variante sécurisée (à privilégier)

Depuis n’importe quel OS avec SSH :

ssh -L 3307:localhost:3306 user@IP_SERVEUR

Tu restes connecté. Ensuite dans ton client MySQL :

  • Host : localhost
  • Port : 3307
  • User : normal
  • Password : normal

C’est sécurisé car ça passe dans le tunnel SSH.

Variante risquée mais simple (connexion directe)

Si MySQL écoute sur ton IP publique (déconseillé !) :

mysql -h IP_SERVEUR -u user -p

Si ça ne fonctionne pas, il faut :

  • modifier /etc/mysql/my.cnf (bind-address = 0.0.0.0)
  • créer un utilisateur MySQL avec accès distant :
CREATE USER 'alex'@'%' IDENTIFIED BY 'motdepasse';
GRANT ALL PRIVILEGES ON *.* TO 'alex'@'%';
FLUSH PRIVILEGES;

🧪 4. Connexion MySQL depuis Node.js (backend SAMI...)

Deux façons principales : mysql2 ou Prisma.

Variante 1 – mysql2 (simple, brut)

Installation :

npm install mysql2

Connexion :

import mysql from 'mysql2/promise';

const db = await mysql.createConnection({
  host: 'localhost',     // IP du serveur MySQL
  user: 'root',          // utilisateur MySQL
  password: 'monmdp',    // mot de passe MySQL
  database: 'SamiDB'     // base ciblée
});

// Exemple de requête :
const [rows] = await db.query('SELECT * FROM User');
console.log(rows);

Variante 2 – Prisma (ton setup actuel dans SAMI)

Ton .env doit contenir :

DATABASE_URL="mysql://root:motdepasse@localhost:3306/SamiDB"

Ensuite Prisma gère tout en interne.

Le client s’utilise comme dans SAMI :

const users = await prisma.user.findMany();

🔧 5. Connexion pour un script bash / automatisation

Sous Linux :

mysql -u root -p'MDP' -e "SHOW DATABASES;"

Ou avec fichier .my.cnf sécurisé :

[client]
user=root
password=tonmdp

Puis simplement :

mysql

🔒 6. Vérifier que MySQL tourne (selon OS)

Linux

systemctl status mysql
systemctl status mariadb

macOS (Homebrew)

brew services list

Windows

Panel « Services » → MySQL80

Previous
Qu’est-ce que MySQL