Mit der Veröffentlichung von CentOS 7 ersetzte MariaDB MySQL als Standarddatenbanksystem. MariaDB wurde von den ursprünglichen Entwicklern von MySQL erstellt und ist ein erweiterter Drop-in-Ersatz für MySQL mit binärer Bibliotheksäquivalenz und exaktem Abgleich mit MySQL-APIs und -Befehlen.
Dieser Artikel beschreibt eine grundlegende Installation eines MariaDB-Datenbankservers auf CentOS Linux. Möglicherweise müssen Sie andere Pakete installieren, damit Anwendungen MariaDB verwenden können, z. B. Erweiterungen für PHP. Einzelheiten finden Sie in Ihrer Anwendungsdokumentation.
Installieren Sie den Datenbankserver
Befolgen Sie die Schritte in diesem Abschnitt, um den Core-Datenbankserver zu installieren.
Installieren Sie MariaDB
Installieren Sie den MariaDB-Server über den CentOS-Paketmanager (yum), indem Sie den folgenden Befehl an einer Eingabeaufforderung ausführen:
sudo yum install mariadb-server
Fernzugriff zulassen
Führen Sie den folgenden Befehl aus, um den Fernzugriff zuzulassen:
firewall-cmd --zone=public --add-service=mysql --permanent
Root-Passwort festlegen
Da Sie gerade den MariaDB-Datenbankserver installiert haben, ist für das Rootkonto kein Passwort festgelegt. Verwenden Sie den folgenden Befehl, um das Root-Passwort und andere wichtige Einstellungen festzulegen:
/usr/bin/mysql_secure_installation
Starten und stoppen Sie den Datenbankdienst
Nach Abschluss der Installation können Sie den Datenbankdienst mit den Befehlen in diesem Abschnitt starten. Wenn das System bereits gestartet ist, informiert Sie eine Meldung darüber, dass der Dienst bereits ausgeführt wird.
Verwenden Sie den folgenden Befehl, um MariaDB zu starten:
sudo systemctl start mariadb.service
Verwenden Sie den folgenden Befehl, um MariaDB zu stoppen:
sudo systemctl stop mariadb.service
Beim Neustart starten
Um sicherzustellen, dass der Datenbankserver nach einem Neustart startet, müssen Sie chkconfig
aktivieren Dienstprogramm. Verwenden Sie dazu den folgenden Befehl:
sudo systemctl enable mariadb.service
Starten Sie die MariaDB-Shell
Es gibt mehr als eine Möglichkeit, mit einem MariaDB-Server zu arbeiten, aber dieser Artikel konzentriert sich auf den grundlegendsten und kompatibelsten Ansatz:die mariadb
Schale.
-
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Shell zu starten, und geben Sie sie als Root-Benutzer ein:
/usr/bin/mysql -u root -p
-
Wenn Sie zur Eingabe eines Passworts aufgefordert werden, geben Sie das Passwort ein, das Sie bei der Installation festgelegt haben, oder drücken Sie die Eingabetaste, wenn Sie noch keins festgelegt haben kein Passwort übermitteln.
Der folgende Shell-Prompt sollte erscheinen:
MariaDB [(none)]>
Benutzer anzeigen
MariaDB und MySQL speichern Benutzerinformationen in ihren eigenen Datenbanken. Der Name der Datenbank ist mysql . Innerhalb dieser Datenbank befinden sich die Benutzerinformationen in einer Tabelle, einem Datensatz mit dem Namen Benutzer . Wenn Sie sehen möchten, welche Benutzer in der MySQL-Benutzertabelle eingerichtet sind, führen Sie den folgenden Befehl aus:
SELECT User, Host, Password FROM mysql.user;
Die folgende Liste beschreibt die Teile dieses Befehls:
- AUSWÄHLEN teilt MySQL mit, dass Sie nach Daten fragen.
- Benutzer, Host, Passwort teilt MySQL mit, in welchen Feldern es suchen soll. Felder sind Kategorien für die Daten in einer Tabelle. In diesem Fall suchen Sie nach dem Benutzernamen, dem mit dem Benutzernamen verknüpften Host und dem verschlüsselten Passworteintrag.
- VON mysql.user weist MySQL an, die Daten von mysql zu holen Datenbank und dem Benutzer Tabelle.
- Ein Semikolon (;) beendet den Befehl.
Benutzer-Hosts
Das folgende Beispiel ist die Ausgabe für die vorherige Abfrage:
SELECT User, Host, Password FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User | Host | Password |
+------------------+-----------+-------------------------------------------+
| root | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | 127.0.0.1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| root | ::1 | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
+------------------+-----------+-------------------------------------------+
Benutzer sind einem Host zugeordnet, insbesondere dem Host, mit dem sie sich verbinden. Der Root-Benutzer in diesem Beispiel ist für localhost definiert , für die IP-Adresse von localhost , und den Hostnamen des Servers. Normalerweise müssen Sie nur für den Host, von dem aus Sie normalerweise eine Verbindung herstellen, einen Benutzer festlegen.
Wenn Sie Ihre Anwendung auf demselben Computer wie den MariaDB-Server ausführen, ist der Host, mit dem sie sich standardmäßig verbindet, localhost . Alle neuen Benutzer, die Sie erstellen, müssen localhost haben in ihrem Host Feld.
Wenn Ihre Anwendung eine Remoteverbindung herstellt, wird der Host Eintrag, nach dem MariaDB sucht, ist die IP-Adresse oder der DNS-Hostname des Remote-Computers (derjenige, von dem der Client kommt).
Datenbank erstellen
Es gibt einen Unterschied zwischen einem Datenbankserver und eine Datenbank , auch wenn diese Begriffe oft synonym verwendet werden. MariaDB ist ein Datenbankserver, was bedeutet, dass er Datenbanken verfolgt und den Zugriff darauf kontrolliert. Die Datenbank speichert die Daten, und es ist die Datenbank, auf die Anwendungen zuzugreifen versuchen, wenn sie mit MariaDB interagieren.
Einige Anwendungen erstellen eine Datenbank als Teil ihres Setup-Prozesses, andere erfordern jedoch, dass Sie eine Datenbank erstellen und die Anwendung darüber informieren.
Um eine Datenbank zu erstellen, melden Sie sich bei mariadb
an Shell und führen Sie den folgenden Befehl aus, wobei Sie demodb
ersetzen mit dem Namen der Datenbank, die Sie erstellen möchten:
CREATE DATABASE demodb;
Die Datenbank wird erstellt. Sie können ihre Erstellung überprüfen, indem Sie eine Abfrage ausführen, um alle Datenbanken aufzulisten. Das folgende Beispiel zeigt die Abfrage und die Beispielausgabe:
SHOW DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| demodb |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
Benutzer und Berechtigungen verwalten
Verwenden Sie die Anweisungen in diesem Abschnitt, um Benutzer für die Datenbank hinzuzufügen und Berechtigungen zu erteilen und zu entziehen.
Benutzer und Berechtigungen hinzufügen
Wenn sich Anwendungen mit dem Root-Benutzer mit der Datenbank verbinden, verfügen sie normalerweise über mehr Berechtigungen, als sie benötigen. Sie können einen neuen Benutzer erstellen, den Anwendungen zum Herstellen einer Verbindung mit der neuen Datenbank verwenden können. Im folgenden Beispiel ein Benutzer namens demouser erstellt.
Führen Sie zum Erstellen eines neuen Benutzers den folgenden Befehl in der mariadb
aus Schale:
CREATE USER 'demouser'@'localhost' IDENTIFIED BY 'demopassword';
Sie können überprüfen, ob der Benutzer erstellt wurde, indem Sie erneut eine SELECT-Abfrage ausführen:
SELECT User, Host, Password FROM mysql.user;
+----------+-----------+------------------------------------------+
| User | Host | Password |
+----------+-----------+------------------------------------------+
| root | localhost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | demohost | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| root | 127.0.0.1 | 2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19 |
| demouser | localhost | 0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
+----------+-----------+------------------------------------------+
Datenbankbenutzerberechtigungen gewähren
Direkt nachdem Sie einen neuen Benutzer erstellt haben, hat er keine Privilegien. Der Benutzer kann verwendet werden, um sich bei MariaDB anzumelden, aber er kann nicht verwendet werden, um Datenbankänderungen vorzunehmen.
-
Geben Sie dem Benutzer volle Berechtigungen für Ihre neue Datenbank, indem Sie den folgenden Befehl ausführen:
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
-
Leeren Sie die Berechtigungen, damit die Änderung wirksam wird.
FLUSH PRIVILEGES;
-
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Berechtigungen festgelegt wurden:
SHOW GRANTS FOR 'demouser'@'localhost';
MariaDB gibt die Befehle zurück, die zum Reproduzieren der Berechtigungen dieses Benutzers erforderlich sind, wenn Sie den Server neu erstellen würden.
USAGE on \*.\*
bedeutet, dass der Benutzer standardmäßig keine Berechtigungen für irgendetwas erhält. Dieser Befehl wird durch den zweiten Befehl überschrieben, bei dem es sich um die Erteilung handelt, die Sie für die neue Datenbank ausgeführt haben.+-----------------------------------------------------------------------------------------------------------------+ | Grants for demouser@localhost | +-----------------------------------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' | | GRANT ALL PRIVILEGES ON `demodb`.* TO 'demouser'@'localhost' | +-----------------------------------------------------------------------------------------------------------------+ 2 rows in set (0.00 sec)
Berechtigungen widerrufen
Manchmal müssen Sie einem Benutzer möglicherweise Berechtigungen entziehen (entziehen). Angenommen, Sie haben ALL
gewährt Privilegien für ‘demouser’@‘localhost’, aber Sie haben versehentlich auch allen anderen Datenbanken Privilegien gewährt, wie in den folgenden Befehlen gezeigt:
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON *.* TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Um den Fehler zu korrigieren, können Sie ein REVOKE
verwenden -Anweisung, gefolgt von GRANT
-Anweisung, um die richtigen Berechtigungen anzuwenden.
REVOKE ALL ON *.* FROM demouser@localhost;
GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
SHOW GRANTS FOR 'demouser'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for demouser@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'demouser'@'localhost' IDENTIFIED BY PASSWORD '*0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6' |
| GRANT ALL PRIVILEGES ON 'demodb'TO 'demouser'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
Jetzt hat Ihr Benutzer die richtigen Berechtigungen und Ihr Datenbankserver ist etwas sicherer (Zuweisung von Berechtigungen wie ALL on *.*
wird als sehr schlechte Praxis angesehen). Sie sollten auch die offizielle MariaDB-Dokumentation bezüglich möglicher Privilegien lesen, um nur die wirklich benötigten Privilegien zu gewähren, anstatt ALL
zu verwenden .
Zusammenfassung
Wenn Sie nur eine Datenbank und einen Benutzer erstellen, sind Sie fertig. Die in diesem Artikel behandelten Konzepte sollten Ihnen einen soliden Ausgangspunkt bieten, um mehr zu erfahren.