GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Installieren Sie MySQL Server auf dem Ubuntu-Betriebssystem

MySQL ist eine relationale Open-Source-Datenbank, die kostenlos und weit verbreitet ist. Es ist eine gute Wahl, wenn Sie wissen, dass Sie eine Datenbank benötigen, aber nicht viel über alle verfügbaren Optionen wissen.

Dieser Artikel beschreibt eine Basisinstallation eines MySQL-Datenbankservers auf dem Betriebssystem Ubuntu. Möglicherweise müssen Sie andere Pakete installieren, damit Anwendungen MySQL verwenden können, z. B. Erweiterungen für PHP. Einzelheiten finden Sie in Ihren Bewerbungsunterlagen.

Installieren Sie MySQL

Installieren Sie den MySQL-Server mithilfe des Paketmanagers des Betriebssystems Ubuntu:

sudo apt-get update
sudo apt-get install mysql-server

Der Installer installiert MySQL und alle Abhängigkeiten.

Wenn das sichere Installationsdienstprogramm nach Abschluss der Installation nicht automatisch gestartet wird, geben Sie den folgenden Befehl ein:

sudo mysql_secure_installation utility

Dieses Dienstprogramm fordert Sie auf, das mysql-Root-Passwort und andere sicherheitsbezogene Optionen zu definieren, einschließlich des Entfernens des Remote-Zugriffs für den Root-Benutzer und des Festlegens des Root-Passworts.

Fernzugriff zulassen

Wenn Sie iptables aktiviert haben und sich von einem anderen Computer aus mit der MySQL-Datenbank verbinden möchten, müssen Sie einen Port in der Firewall Ihres Servers öffnen (der Standardport ist 3306). Dies ist nicht erforderlich, wenn die Anwendung, die MySQL verwendet, auf demselben Server ausgeführt wird.

Führen Sie den folgenden Befehl aus, um den Fernzugriff auf den MySQL-Server zuzulassen:

sudo ufw enable
sudo ufw allow mysql

Starten Sie den MySQL-Dienst

Nach Abschluss der Installation können Sie den Datenbankdienst starten, indem Sie den folgenden Befehl ausführen. Wenn der Dienst bereits gestartet ist, werden Sie durch eine Meldung darüber informiert, dass der Dienst bereits ausgeführt wird:

sudo systemctl start mysql

Beim Neustart starten

Um sicherzustellen, dass der Datenbankserver nach einem Neustart startet, führen Sie den folgenden Befehl aus:

sudo systemctl enable mysql

Schnittstellen konfigurieren

MySQL ist standardmäßig nicht mehr an (lauschende) entfernt zugängliche Schnittstellen gebunden. Bearbeiten Sie die Direktive „bind-address“ in /etc/mysql/mysql.conf.d/mysqld.cnf:

bind-address		= 127.0.0.1 ( The default. )
bind-address		= XXX.XXX.XXX.XXX ( The ip address of your Public Net interface. )
bind-address		= ZZZ.ZZZ.ZZZ.ZZZ ( The ip address of your Service Net interface. )
bind-address		= 0.0.0.0 ( All ip addresses. )

Starten Sie den MySQL-Dienst neu.

sudo systemctl restart mysql

Starten Sie die MySQL-Shell

Es gibt mehr als einen Weg, mit einem MySQL-Server zu arbeiten, aber dieser Artikel konzentriert sich auf den grundlegendsten und kompatibelsten Ansatz, den mysql Schale.

  1. Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um mysql zu starten Shell und geben Sie sie als Root-Benutzer ein:

    /usr/bin/mysql -u root -p
    
  2. 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 keines festgelegt haben kein Passwort übermitteln.

    Das folgende mysql Shell-Prompt sollte erscheinen:

    mysql>
    

Root-Passwort festlegen

Wenn Sie sich angemeldet haben, indem Sie ein leeres Passwort eingegeben haben, oder wenn Sie das von Ihnen festgelegte Root-Passwort ändern möchten, können Sie das Passwort erstellen oder ändern.

  1. Geben Sie für Versionen vor MySQL 5.7 den folgenden Befehl in mysql ein Shell, ersetzen Sie password mit Ihrem neuen Passwort:

    UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
    

    Geben Sie für Version MySQL 5.7 und höher den folgenden Befehl in mysql ein Shell, wobei password ersetzt wird mit Ihrem neuen Passwort:

    UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
    
  2. Damit die Änderung wirksam wird, laden Sie die gespeicherten Benutzerinformationen mit dem folgenden Befehl neu:

    FLUSH PRIVILEGES;
    

    Hinweis :Wir verwenden Großbuchstaben für SQL-Befehle. Wenn Sie diese Befehle in Kleinbuchstaben eingeben, funktionieren sie. Konventionsgemäß werden die Befehle in Großbuchstaben geschrieben, um sie von Feldnamen und anderen manipulierten Daten abzuheben.

Wenn Sie das Root-Passwort später zurücksetzen müssen, finden Sie weitere Informationen unter Zurücksetzen eines MySQL-Root-Passworts.

Benutzer anzeigen

MySQL speichert die Benutzerinformationen in einer eigenen Datenbank. Der Name der Datenbank ist mysql . Innerhalb dieser Datenbank befinden sich die Benutzerinformationen in einer Tabelle, einem Datensatz namens user . Wenn Sie sehen möchten, welche Benutzer in der MySQLuser-Tabelle eingerichtet sind, führen Sie den folgenden Befehl aus:

SELECT User, Host, authentication_string FROM mysql.user;

Die folgende Liste beschreibt die Teile dieses Befehls:

  • AUSWÄHLEN teilt MySQL mit, dass Sie nach Daten fragen.
  • Benutzer , Host , Authentifizierungszeichenfolge 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 Kennworteintrag.
  • VON mysql.user " weist MySQL an, die Daten von mysql zu holen Datenbank und dem Benutzer Tabelle.
  • Ein Semikolon (;) beendet den Befehl.

Hinweis :Alle SQL-Abfragen enden mit einem Semikolon. MySQL verarbeitet eine Abfrage erst, wenn Sie ein Semikolon eingeben.

Benutzer-Hosts

Das folgende Beispiel ist die Ausgabe für die vorherige Abfrage:

SELECT User, Host, authentication_string FROM mysql.user;
+------------------+-----------+-------------------------------------------+
| User             | Host      | authentication_string                     |
+------------------+-----------+-------------------------------------------+
| root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
| mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
+------------------+-----------+-------------------------------------------+

Benutzer werden einem Host zugeordnet, insbesondere dem Host, von dem aus 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 einen Benutzer nur für einen Host festlegen, nämlich den, von dem aus Sie normalerweise eine Verbindung herstellen.

Wenn Sie Ihre Anwendung auf demselben Computer wie den MySQL-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 MySQL sucht, ist die IP-Adresse oder der DNS-Hostname des entfernten Computers (derjenige, von dem der Client kommt).

Anonyme Benutzer

In der Beispielausgabe hat ein Eintrag einen Hostwert, aber keinen Benutzernamen oder Passwort. Das ist ein anonymer Benutzer . Wenn sich ein Client ohne angegebenen Benutzernamen verbindet, versucht er, sich als anonymer Benutzer zu verbinden.

Normalerweise möchten Sie keine anonymen Benutzer, aber einige MySQL-Installationen enthalten standardmäßig einen. Wenn Sie eines sehen, sollten Sie entweder den Benutzer löschen (beziehen Sie sich auf den Benutzernamen mit leeren Anführungszeichen, wie ' ') oder ein Passwort dafür festlegen.

Datenbank erstellen

Es gibt einen Unterschied zwischen einem Datenbankserver und eine Datenbank , auch wenn diese Begriffe oft synonym verwendet werden. MySQL ist ein Datenbankserver, dh er verfolgt Datenbanken und kontrolliert den Zugriff darauf. Die Datenbank speichert die Daten, und es ist die Datenbank, auf die Anwendungen zuzugreifen versuchen, wenn sie mit MySQL interagieren.

Einige Anwendungen erstellen eine Datenbank als Teil ihres Einrichtungsprozesses, bei anderen müssen Sie jedoch selbst eine Datenbank erstellen und die Anwendung darüber informieren.

Um eine Datenbank zu erstellen, melden Sie sich bei mysql an Shell und führen Sie den folgenden Befehl aus, indem Sie demodb ersetzen mit dem Namen der Datenbank, die Sie erstellen möchten:

CREATE DATABASE demodb;

Nachdem die Datenbank erstellt wurde, können Sie 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)

Datenbankbenutzer 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 Benutzer hinzufügen, die Anwendungen zum Herstellen einer Verbindung mit der neuen Datenbank verwenden können. Im folgenden Beispiel ein Benutzer namens demouser erstellt.

  1. Führen Sie zum Erstellen eines neuen Benutzers den folgenden Befehl in mysql aus Schale:

    INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)
    VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
    
  2. Wenn Sie Änderungen am Benutzer vornehmen Tabelle in mysql Datenbank, weisen Sie MySQL an, die Änderungen zu lesen, indem Sie die Berechtigungen wie folgt löschen:

    FLUSH PRIVILEGES;
    
  3. Überprüfen Sie, ob der Benutzer erstellt wurde, indem Sie erneut eine SELECT-Abfrage ausführen:

    SELECT User, Host, authentication_string FROM mysql.user;
    
    +------------------+-----------+-------------------------------------------+
    | User             | Host      | Password                                  |
    +------------------+-----------+-------------------------------------------+
    | root             | localhost | *756FEC25AC0E1823C9838EE1A9A6730A20ACDA21 |
    | mysql.session    | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | mysql.sys        | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
    | debian-sys-maint | localhost | *27E7CA2445405AB10C656AFD0F86AF76CCC57692 |
    | demouser         | localhost | *0756A562377EDF6ED3AC45A00B356AAE6D3C6BB6 |
    +------------------+-----------+-------------------------------------------+
    

Datenbankbenutzerberechtigungen erteilen

Direkt nachdem Sie einen neuen Benutzer erstellt haben, hat er keine Privilegien. Der Benutzer kann sich anmelden, kann aber nicht verwendet werden, um Datenbankänderungen vorzunehmen.

  1. Geben Sie dem Benutzer vollständige Berechtigungen für Ihre neue Datenbank, indem Sie den folgenden Befehl ausführen:

    GRANT ALL PRIVILEGES ON demodb.* to demouser@localhost;
    
  2. Löschen Sie die Berechtigungen, um die Änderung offiziell zu machen, indem Sie den folgenden Befehl ausführen:

    FLUSH PRIVILEGES;
    
  3. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob diese Berechtigungen festgelegt sind:

    SHOW GRANTS FOR 'demouser'@'localhost';
    2 rows in set (0.00 sec)
    

    MySQL 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 außer Kraft gesetzt, 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)
    

Zusammenfassung

Wenn Sie nur eine Datenbank und einen Benutzer erstellen, sind Sie fertig. Die hier behandelten Konzepte sollten Ihnen einen soliden Ausgangspunkt bieten, um mehr zu erfahren.

  • MySQL-Server auf dem Ubuntu-Betriebssystem konfigurieren
  • Ein MySQL-Root-Passwort zurücksetzen

Linux
  1. So installieren Sie MySQL Server unter Ubuntu 16.04

  2. So installieren Sie den Apache-Webserver unter Ubuntu

  3. So installieren Sie MySQL unter Ubuntu 16.04

  4. Konfigurieren Sie den MySQL-Server auf dem Ubuntu-Betriebssystem

  5. Planen Sie Neustarts im Ubuntu-Betriebssystem

So installieren Sie MySQL 8.0 unter Ubuntu 18.04

Graylog-Überwachungsserver unter Ubuntu Linux für Überwachungsserver/-dienste

Die vollständige Anleitung zur Installation von MySQL auf Ubuntu

So installieren Sie LAMP auf einem Ubuntu 15.04-Server

So installieren Sie MySQL 8.0 auf Ubuntu 18.04

So installieren Sie MySQL Server unter Ubuntu 20.04