Android

So verwalten Sie MySQL-Datenbanken und Benutzer über die Befehlszeile

Google Cloud Storage: Massive Scalability Plus More | Google Cloud Labs

Google Cloud Storage: Massive Scalability Plus More | Google Cloud Labs

Inhaltsverzeichnis:

Anonim

MySQL ist das beliebteste relationale Open-Source-Datenbankverwaltungssystem. Mit MySQL Server können wir zahlreiche Benutzer und Datenbanken erstellen und entsprechende Berechtigungen gewähren, damit Benutzer auf Datenbanken zugreifen und diese verwalten können.

In diesem Tutorial wird erklärt, wie Sie mithilfe der Befehlszeile MySQL- oder MariaDB-Datenbanken und -Benutzer erstellen und verwalten.

Bevor Sie beginnen

Bevor Sie mit diesem Tutorial beginnen, gehen wir davon aus, dass Sie bereits einen MySQL- oder MariaDB-Server auf Ihrem System installiert haben. Alle Befehle werden als Root ausgeführt.

Geben Sie zum Öffnen der MySQL-Eingabeaufforderung den folgenden Befehl ein und geben Sie das MySQL-Root-Benutzerkennwort ein, wenn Sie dazu aufgefordert werden:

mysql -u root -p

Erstellen Sie eine neue MySQL-Datenbank

Um eine neue MySQL-Datenbank zu erstellen, führen Sie den folgenden Befehl aus, ersetzen Sie einfach database_name durch den Namen der Datenbank, die Sie erstellen möchten:

CREATE DATABASE database_name;

Query OK, 1 row affected (0.00 sec)

ERROR 1007 (HY000): Can't create database 'database_name'; database exists

Um Fehler zu vermeiden, wenn die Datenbank mit dem Namen existiert, den Sie erstellen möchten, können Sie den folgenden Befehl verwenden:

CREATE DATABASE IF NOT EXISTS database_name;

Query OK, 1 row affected, 1 warning (0.00 sec)

In der obigen Ausgabe bedeutet Query OK , dass die Abfrage erfolgreich war, und 1 warning besagt, dass die Datenbank bereits vorhanden ist und keine neue Datenbank erstellt wurde.

Listen Sie alle MySQL-Datenbanken auf

Mit dem folgenden Befehl können Sie alle Datenbanken auflisten, die auf unserem MySQL- oder MariaDB-Server vorhanden sind:

SHOW DATABASES;

Die Ausgabe sieht ungefähr so ​​aus:

+--------------------+ | Database | +--------------------+ | information_schema | | database_name | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec)

Die Datenbanken information_schema , mysql , performance_schema und sys werden zur Installationszeit erstellt und speichern Informationen zu allen anderen Datenbanken, zur Systemkonfiguration, zu Benutzern, Berechtigungen und anderen wichtigen Daten. Diese Datenbanken sind für die ordnungsgemäße Funktionalität der MySQL-Installation erforderlich.

Löschen Sie eine MySQL-Datenbank

Das Löschen einer MySQL-Datenbank ist so einfach wie das Ausführen eines einzelnen Befehls. Dies ist eine nicht umkehrbare Aktion und sollte mit Vorsicht ausgeführt werden. Stellen Sie sicher, dass Sie keine falsche Datenbank entfernen, da die Datenbank nach dem Löschen nicht wiederhergestellt werden kann.

Führen Sie zum Löschen einer MySQL- oder MariaDB-Datenbank den folgenden Befehl aus:

DROP DATABASE database_name;

Query OK, 0 rows affected (0.00 sec)

ERROR 1008 (HY000): Can't drop database 'database_name'; database doesn't exist

Um diesen Fehler zu vermeiden, können Sie den folgenden Befehl verwenden:

DROP DATABASE IF EXISTS database_name;

Erstellen Sie ein neues MySQL-Benutzerkonto

Ein Benutzerkonto in MySQL besteht aus einem Benutzernamen und einem Hostnamen.

Um ein neues MySQL-Benutzerkonto zu erstellen, führen Sie den folgenden Befehl aus, ersetzen Sie einfach 'database_user' durch den Namen des Benutzers, den Sie erstellen möchten:

CREATE USER 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Im obigen Befehl haben wir den Hostnamen-Teil auf localhost was bedeutet, dass dieser Benutzer nur vom localhost (dh von dem System, auf dem MySQL Server ausgeführt wird) aus eine Verbindung zum MySQL-Server herstellen kann. Wenn Sie anderen Hosts Zugriff gewähren möchten, ändern Sie einfach den localhost mit der IP- localhost des Remote-Computers oder verwenden Sie '%' Platzhalter '%' für den Host-Teil. Dies bedeutet, dass das Benutzerkonto von jedem Host aus eine Verbindung herstellen kann.

Wie beim Arbeiten mit den Datenbanken, um Fehler beim Erstellen eines bereits vorhandenen Benutzerkontos zu vermeiden, können Sie Folgendes verwenden:

CREATE USER IF NOT EXISTS 'database_user'@'localhost' IDENTIFIED BY 'user_password';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Ändern Sie das Passwort eines MySQL-Benutzerkontos

Die Syntax zum Ändern eines MySQL- oder MariaDB-Benutzerkontokennworts hängt von der Serverversion ab, die Sie auf Ihrem System ausführen.

Sie können Ihre Serverversion ermitteln, indem Sie den folgenden Befehl eingeben:

mysql --version

ALTER USER 'database_user'@'localhost' IDENTIFIED BY 'new_password';

SET PASSWORD FOR 'database_user'@'localhost' = PASSWORD('new_password');

In beiden Fällen sollte die Ausgabe folgendermaßen aussehen:

Query OK, 0 rows affected (0.00 sec)

Listen Sie alle MySQL-Benutzerkonten auf

Sie können alle MySQL- oder MariaDB-Benutzerkonten mysql.users indem Sie die mysql.users Tabelle abfragen:

SELECT user, host FROM mysql.user;

Die Ausgabe sollte wie folgt aussehen:

+------------------+-----------+ | user | host | +------------------+-----------+ | database_user | % | | database_user | localhost | | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ 6 rows in set (0.00 sec)

Löschen Sie das MySQL-Benutzerkonto

Verwenden Sie den folgenden Befehl, um ein Benutzerkonto zu löschen:

DROP USER 'database_user@'localhost';

ERROR 1396 (HY000): Operation DROP USER failed for 'database_user'@'localhost'

Wie beim Arbeiten mit den Datenbanken, um den Fehler zu vermeiden, den Sie verwenden können:

DROP USER IF EXISTS 'database_user'@'localhost';

Query OK, 0 rows affected, 1 warning (0.00 sec)

Gewähren Sie einem MySQL-Benutzerkonto Berechtigungen

Es gibt mehrere Arten von Berechtigungen, die einem Benutzerkonto erteilt werden können. Eine vollständige Liste der von MySQL unterstützten Berechtigungen finden Sie hier. In diesem Handbuch werden wir einige Beispiele durchgehen:

Verwenden Sie den folgenden Befehl, um alle Berechtigungen für ein Benutzerkonto über eine bestimmte Datenbank zu vergeben:

GRANT ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Verwenden Sie den folgenden Befehl, um alle Berechtigungen für ein Benutzerkonto für alle Datenbanken zu vergeben:

GRANT ALL PRIVILEGES ON *.* TO 'database_user'@'localhost';

Verwenden Sie den folgenden Befehl, um alle Berechtigungen für ein Benutzerkonto für eine bestimmte Tabelle aus einer Datenbank festzulegen:

GRANT ALL PRIVILEGES ON database_name.table_name TO 'database_user'@'localhost';

GRANT SELECT, INSERT, DELETE ON database_name.* TO database_user@'localhost';

Widerrufen Sie Berechtigungen von einem MySQL-Benutzerkonto

REVOKE ALL PRIVILEGES ON database_name.* TO 'database_user'@'localhost';

Zeigen Sie MySQL-Benutzerkontoberechtigungen an

So finden Sie die Berechtigungen, die einem bestimmten MySQL-Benutzerkontotyp erteilt wurden:

SHOW GRANTS FOR 'database_user'@'localhost';

+---------------------------------------------------------------------------+ | Grants for database_user@localhost | +---------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'database_user'@'localhost' | | GRANT ALL PRIVILEGES ON `database_name`.* TO 'database_user'@'localhost' | +---------------------------------------------------------------------------+ 2 rows in set (0.00 sec)

Fazit

Dieses Tutorial behandelt nur die Grundlagen, aber es sollte ein guter Einstieg für alle sein, die lernen möchten, wie MySQL-Datenbanken und -Benutzer über die Befehlszeile verwaltet werden. Sie können auch im Tutorial nachlesen, wie Sie ein MySQL-Root-Passwort zurücksetzen, falls Sie es vergessen haben.

Das ist alles! Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.

MySQL Mariadb