Einführung
Eines der ersten Dinge, über die Sie nachdenken müssen, wenn Sie mit einer MySQL-Datenbank arbeiten, ist, wie Sie sich mit der Datenbankinstanz verbinden und mit ihr interagieren. Dies erfordert eine Koordination zwischen dem Datenbankclient – der Komponente, die Sie verwenden, um mit der Datenbank zu interagieren – und dem Datenbankserver – der eigentlichen MySQL-Instanz, die Ihre Daten speichert, organisiert und Zugriff darauf bereitstellt.
Aus diesem Grund müssen Sie verstehen, wie Sie sich als Client verbinden, indem Sie die erforderlichen Informationen zur Authentifizierung bereitstellen. In dieser Anleitung behandeln wir, wie Sie mit dem nativen mysql
eine Verbindung zu einer MySQL-Datenbank herstellen Befehlszeilen-Client – eine der gebräuchlichsten und nützlichsten Arten der Interaktion mit einer Datenbankinstanz.
In einem begleitenden Handbuch erfahren Sie, wie Sie die Authentifizierung von MySQL konfigurieren, um die Anforderungen Ihres Projekts zu erfüllen. Erwägen Sie, beide Leitfäden zu lesen, um ein vollständigeres Bild davon zu erhalten, wie die Authentifizierung in MySQL funktioniert.
Grundlegende Informationen über mysql
Kunde
Die mysql
client ist der standardmäßige Befehlszeilenclient und die SQL-Shell für MySQL. Sie können es interaktiv verwenden, um eine Shell-Sitzung mit Ihrem Server zu starten, oder Sie können es mit SQL-Dateien füttern, damit es ohne Benutzerinteraktion ausgeführt wird. Dies ist besonders nützlich, wenn Sie Konfigurationsoptionen implementieren und Ihre Umgebung einrichten. Interaktive Exploration und Ad-hoc-Abfragen sind ebenfalls eine starke Lösung bei der Entwicklung der Zugriffsmuster, die Ihre Programme verwenden werden.
Wie Sie sich mit einem MySQL-Server verbinden und authentifizieren, hängt von der Konfiguration Ihres Servers ab. In den folgenden Abschnitten gehen wir auf einige der grundlegenden Verbindungsoptionen ein. Der Übersichtlichkeit halber unterscheiden wir zwischen lokalen und entfernten Verbindungen:
- lokale Verbindung :eine Verbindung, bei der sich der Client und die MySQL-Instanz auf demselben Server befinden
- Fernverbindung :wo der Client eine Verbindung zu einer über das Netzwerk zugänglichen MySQL-Instanz herstellt, die auf einem anderen Computer läuft
Beginnen wir damit, von demselben Computer aus eine Verbindung zu einer Datenbank herzustellen.
Verbinden mit einer lokalen Datenbank mit mysql
Ohne Argumente wird die mysql
Der Befehl versucht, eine Verbindung zu einer Unix-Socket-Datei herzustellen, um auf eine lokale Datenbank zuzugreifen. Normalerweise wird der Standardspeicherort der Socket-Datei entweder durch eine Konfigurationsdatei oder durch einen einkompilierten Standardwert bestimmt. Standardmäßig wird der Benutzername Ihres Betriebssystems verwendet, um zu versuchen, eine Verbindung zur Datenbank herzustellen.
Wenn Ihr aktueller Benutzer also ein gültiger MySQL-Benutzer in Ihrer lokalen Datenbank ist, können Sie versuchen, eine Verbindung herzustellen, indem Sie Folgendes eingeben:
mysql
Wenn das Konto existiert und kein Passwort erfordert oder wenn die MySQL-Socket-Authentifizierung für das Konto konfiguriert ist, werden Sie automatisch angemeldet. Wenn der Benutzername in MySQL nicht existiert oder wenn ein Passwort oder eine zusätzliche Authentifizierung erforderlich ist, schlägt der Befehl fehl.
Um die Art und Weise zu steuern, wie mysql
versucht, sich bei der Datenbank anzumelden, übergeben Sie zusätzliche Informationen mit Ihrem Befehl unter Verwendung von Befehlszeilenoptionen:
--user=<username>
oder-u <username>
:Gibt den MySQL-Benutzer an, mit dem die Authentifizierung erfolgen soll.--password
oder-p
:weist MySQL an, nach einem Passwort für den MySQL-Benutzer zu fragen.--host=127.0.0.1
oder-h 127.0.0.1
:teiltmysql
mit um eine Verbindung zur lokalen MySQL-Instanz mithilfe der lokalen TCP-Loopback-Adresse anstelle eines Unix-Sockets herzustellen. Dies ist wichtig, wenn Ihr MySQL-Server nicht für die Verwendung von Unix-Sockets konfiguriert ist.
Hinweis: MySQL interpretiert 127.0.0.1
anders als localhost
. Angabe von 127.0.0.1
gibt an, dass Sie eine TCP-Verbindung verwenden möchten, während localhost
bewirkt, dass MySQL versucht, einen Unix-Socket zu verwenden, um sich mit der lokalen Datenbank zu verbinden.
Wenn Sie sich also als MySQL-Benutzer eva
anmelden müssen mit einem Passwort, aber immer noch über den Unix-Socket zum Verbinden, könnten Sie Folgendes eingeben:
mysql --user=eva --password
Die mysql
Der Client fordert Sie zur Eingabe eines Kennworts für das Konto auf.
Wenn Sie versuchen möchten, sich mit demselben Benutzernamen, aber über eine TCP-Verbindung zur lokalen Datenbank anzumelden, geben Sie stattdessen Folgendes ein:
mysql --user=eva --password --host=127.0.0.1
Die standardmäßige Authentifizierungskonfiguration sowie der anfängliche administrative Benutzername und das Kennwort können je nach Installation von MySQL unterschiedlich sein. Viele Methoden richten MySQL jedoch so ein, dass es einen Unix-Socket verwendet und standardmäßig ein root
enthält Benutzer als Administratorkonto.
In diesen Fällen können Sie sich als root
bei der Datenbank anmelden Benutzer durch Eingabe von:
mysql --user=root --password
Sie werden aufgefordert, das Administratorkennwort einzugeben, das während der Installation ausgewählt oder generiert wurde, um fortzufahren.
Alle diese Methoden ermöglichen es Ihnen, sich mit einer lokalen MySQL-Datenbank zu verbinden.
Verbinden mit einer entfernten Datenbank
Wenn Sie eine Verbindung zu einer Remote-MySQL-Datenbank herstellen möchten, müssen Sie den Netzwerkstandort des Remote-Hosts angeben und möglicherweise einige zusätzliche Informationen hinzufügen.
Die verfügbaren Authentifizierungsmethoden variieren je nach Konfiguration der MySQL-Instanz. Am häufigsten müssen Sie jedoch die folgenden Parameter zur Authentifizierung angeben:
Option | Beschreibung |
---|---|
--host= oder -h | Der Netzwerk-Hostname oder die IP-Adresse des MySQL-Servers. |
--port= oder -P | Der Netzwerkport, auf dem der MySQL-Server läuft. Wenn der Server Port 3306 verwendet, den standardmäßigen MySQL-Port, kann dieser Parameter weggelassen werden. |
--user= oder -u | Der Datenbank-Benutzername, unter dem Sie sich verbinden möchten. Wenn nicht angegeben, wird Ihr Betriebssystem-Benutzername verwendet. |
--password oder -p | Geben Sie an, dass Sie ein Passwort für das angegebene Konto angeben möchten. Die mysql Der Client fordert Sie zur Eingabe des Passworts auf, sobald Sie Enter drücken . |
MySQL-Datenbank | Der Name der MySQL-Datenbank, auf die Sie zugreifen möchten. Wenn nicht angegeben, mysql stellt eine Verbindung zum Server her, ohne sich mit einer bestimmten Datenbank zu verbinden. |
Das grundlegende Format für die Verbindung zu einer entfernten Datenbank sieht normalerweise etwa so aus:
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Nach dem Drücken von Enter , das mysql
Der Client fordert Sie zur Eingabe des Kennworts auf. Wenn Sie sich erfolgreich authentifizieren, wird eine neue interaktive MySQL-Sitzung gestartet.
Als Beispiel können wir uns vorstellen, eine Verbindung zu einer Datenbank mit den folgenden Anforderungen herzustellen:
- Hostname:
myhost
- Port:1234
- Datenbank:
applicationdb
- Benutzername:
myapplicationuser
- Passwort:
mypass
Aufruf von mysql
mit den folgenden Optionen können Sie sich authentifizieren:
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
Wenn Sie die Eingabetaste drücken, werden Sie nach einem Passwort gefragt, mit dem Sie sich mit mypass
authentifizieren können .
Anpassen der Authentifizierungskonfiguration eines MySQL-Servers
Wenn Sie die Regeln ändern möchten, die festlegen, wie Benutzer sich bei Ihren MySQL-Instanzen authentifizieren können, können Sie dies tun, indem Sie die Konfiguration Ihres Servers ändern. In diesem Artikel erfahren Sie, wie Sie die Authentifizierungskonfiguration von MySQL ändern.
Fazit
In diesem Leitfaden haben wir die MySQL-Authentifizierung von der Clientseite behandelt. Wir haben gezeigt, wie man mysql
verwendet Befehlszeilenclient zum Verbinden mit lokalen und entfernten Datenbankinstanzen.
Zu wissen, wie man sich mit verschiedenen MySQL-Instanzen verbindet, ist einer der ersten Schritte, die Sie verstehen müssen, wenn Sie anfangen, mit dem Datenbanksystem zu arbeiten. Sie können eine lokale MySQL-Instanz für die Entwicklung ausführen, die keine spezielle Authentifizierung erfordert, aber Ihre Datenbanken in Staging und Produktion erfordern mit ziemlicher Sicherheit eine Authentifizierung. Wenn Sie sich in beiden Fällen authentifizieren können, können Sie in verschiedenen Umgebungen gut arbeiten.