Introduction
L'une des premières choses auxquelles vous devez penser lorsque vous travaillez avec une base de données MySQL est de savoir comment vous connecter et interagir avec l'instance de base de données. Cela nécessite une coordination entre le client de base de données - le composant que vous utilisez pour interagir avec la base de données, et le serveur de base de données - l'instance MySQL réelle qui stocke, organise et fournit l'accès à vos données.
Pour cette raison, vous devez comprendre comment vous connecter en tant que client en fournissant les informations requises pour vous authentifier. Dans ce guide, nous expliquerons comment se connecter à une base de données MySQL en utilisant le natif mysql
client de ligne de commande - l'un des moyens les plus courants et les plus utiles d'interagir avec une instance de base de données.
Dans un guide d'accompagnement, vous pouvez découvrir comment configurer l'authentification de MySQL pour répondre aux besoins de votre projet. Envisagez de lire les deux guides pour une image plus complète du fonctionnement de l'authentification dans MySQL.
Informations de base sur mysql
clients
Le mysql
client est le client de ligne de commande par défaut et le shell SQL pour MySQL. Vous pouvez l'utiliser de manière interactive pour générer une session shell avec votre serveur ou vous pouvez l'alimenter en fichiers SQL pour qu'il s'exécute sans interaction de l'utilisateur. Il est particulièrement utile lors de la mise en œuvre des options de configuration et de la configuration de votre environnement. L'exploration interactive et les requêtes ad hoc sont également un atout majeur lors du développement des modèles d'accès que vos programmes utiliseront.
La façon de se connecter et de s'authentifier auprès d'un serveur MySQL dépend de la configuration de votre serveur. Dans les sections suivantes, nous passerons en revue certaines des options de connexion de base. Par souci de clarté, nous ferons la différence entre les connexions locales et distantes :
- connexion locale :une connexion où le client et l'instance MySQL sont situés sur le même serveur
- connexion à distance :où le client se connecte à une instance MySQL accessible par le réseau et exécutée sur un autre ordinateur
Commençons par se connecter à une base de données depuis le même ordinateur.
Connexion à une base de données locale avec mysql
Sans aucun argument, le mysql
La commande tente de se connecter à un fichier socket Unix pour accéder à une base de données locale. Habituellement, l'emplacement du fichier de socket par défaut est déterminé soit par un fichier de configuration, soit par une valeur compilée par défaut. Par défaut, le nom d'utilisateur de votre système d'exploitation est utilisé pour tenter de se connecter à la base de données.
Ainsi, si votre utilisateur actuel est un utilisateur MySQL valide sur votre base de données locale, vous pouvez essayer de vous connecter en tapant :
mysql
Si le compte existe et ne nécessite pas de mot de passe ou si l'authentification par socket MySQL est configurée pour le compte, vous serez connecté automatiquement. Si le nom d'utilisateur n'existe pas dans MySQL ou si un mot de passe ou une authentification supplémentaire est requis, la commande échouera.
Pour contrôler la façon dont mysql
essaie de se connecter à la base de données, transmettez des informations supplémentaires avec votre commande en utilisant les options de ligne de commande :
--user=<username>
ou-u <username>
:spécifie l'utilisateur MySQL avec lequel s'authentifier.--password
ou-p
:indique à MySQL de demander un mot de passe pour l'utilisateur MySQL.--host=127.0.0.1
ou-h 127.0.0.1
:indiquemysql
pour se connecter à l'instance MySQL locale en utilisant l'adresse de bouclage TCP locale au lieu d'un socket Unix. Ceci est important à utiliser si votre serveur MySQL n'est pas configuré pour utiliser les sockets Unix.
Remarque : MySQL interprète 127.0.0.1
différemment de localhost
. Spécifier 127.0.0.1
indique que vous souhaitez utiliser une connexion TCP, tandis que localhost
obligera MySQL à essayer d'utiliser un socket Unix pour se connecter à la base de données locale.
Donc, si vous devez vous connecter en tant qu'utilisateur MySQL eva
avec un mot de passe, mais toujours en utilisant le socket Unix pour se connecter, vous pouvez taper :
mysql --user=eva --password
Le mysql
client vous demandera un mot de passe pour le compte.
Si vous souhaitez essayer de vous connecter avec le même nom d'utilisateur mais via une connexion TCP à la base de données locale, vous devez plutôt saisir :
mysql --user=eva --password --host=127.0.0.1
La configuration d'authentification par défaut ainsi que le nom d'utilisateur et le mot de passe administratifs initiaux peuvent différer selon la manière dont MySQL a été installé. Cependant, de nombreuses méthodes configurent MySQL pour utiliser un socket Unix et inclure une root
par défaut utilisateur comme compte administratif.
Dans ces cas, vous pouvez vous connecter à la base de données en tant que root
utilisateur en saisissant :
mysql --user=root --password
Vous serez invité à entrer le mot de passe administrateur qui a été sélectionné ou généré lors de l'installation pour continuer.
Toutes ces méthodes vous permettent de vous connecter à une base de données MySQL locale.
Connexion à une base de données distante
Si vous souhaitez vous connecter à une base de données MySQL distante, vous devrez fournir l'emplacement réseau de l'hôte distant et éventuellement ajouter des informations supplémentaires.
Les méthodes d'authentification disponibles varient en fonction de la configuration de l'instance MySQL. Le plus souvent, cependant, vous devez fournir les paramètres suivants pour vous authentifier :
Option | Description |
---|---|
--host= ou -h | Le nom d'hôte du réseau ou l'adresse IP du serveur MySQL. |
--port= ou -P | Le port réseau sur lequel le serveur MySQL s'exécute. Si le serveur utilise le port 3306, le port MySQL par défaut, ce paramètre peut être omis. |
--user= ou -u | Le nom d'utilisateur de la base de données avec lequel vous souhaitez vous connecter. S'il n'est pas spécifié, le nom d'utilisateur de votre système d'exploitation sera utilisé. |
--password ou -p | Indiquez que vous souhaitez fournir un mot de passe pour le compte spécifié. Le mysql le client vous demandera le mot de passe une fois que vous aurez appuyé sur Entrée . |
Base de données MySQL | Le nom de la base de données MySQL à laquelle vous souhaitez accéder. Si non spécifié, mysql se connectera au serveur sans se connecter à une base de données spécifique. |
Le format de base pour se connecter à une base de données distante ressemble généralement à ceci :
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Après avoir appuyé sur Entrée , le mysql
client vous demandera le mot de passe. Si vous vous authentifiez avec succès, une nouvelle session MySQL interactive sera lancée.
À titre d'exemple, nous pouvons imaginer vouloir se connecter à une base de données avec les exigences suivantes :
- nom d'hôte :
myhost
- port :1234
- base de données :
applicationdb
- nom d'utilisateur :
myapplicationuser
- mot de passe :
mypass
Appel de mysql
avec les options suivantes vous permettra de vous authentifier :
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
En appuyant sur Entrée, vous serez invité à entrer un mot de passe où vous pourrez vous authentifier avec mypass
.
Régler la configuration d'authentification d'un serveur MySQL
Si vous souhaitez modifier les règles qui dictent la manière dont les utilisateurs peuvent s'authentifier auprès de vos instances MySQL, vous pouvez le faire en modifiant la configuration de votre serveur. Vous pouvez découvrir comment modifier la configuration de l'authentification de MySQL dans cet article.
Conclusion
Dans ce guide, nous avons couvert l'authentification MySQL du côté client. Nous avons montré comment utiliser le mysql
client de ligne de commande pour se connecter aux instances de base de données locales et distantes.
Savoir comment se connecter à diverses instances MySQL est l'une des premières étapes que vous devez comprendre lorsque vous commencez à utiliser le système de base de données. Vous pouvez exécuter une instance MySQL locale pour le développement qui ne nécessite aucune authentification spéciale, mais vos bases de données en staging et en production nécessiteront presque certainement une authentification. Pouvoir vous authentifier dans les deux cas vous permettra de bien travailler dans différents environnements.