Support-Netzwerk
Installieren Sie MySQL Server auf dem Ubuntu-Betriebssystem
Zuletzt aktualisiert am: 2019-12-20
Autor: Jered Heeschen
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 grundlegende Installation eines MySQL-Datenbankservers auf dem Ubuntu-Betriebssystem. Möglicherweise müssen Sie andere Pakete installieren, damit Anwendungen MySQL verwenden können, z. B. Erweiterungen für PHP. Überprüfen Sie Ihre applicationdocumentation für Details.
MySQL installieren
Installieren Sie den MySQL-Server mit dem Paketmanager des Ubuntu-Betriebssystems:
sudo apt-get updatesudo apt-get install mysql-server
Das Installationsprogramm installiert MySQL und alle Abhängigkeiten.
Wenn das Dienstprogramm für die sichere Installation 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 sicherheitsrelevante Optionen zu definieren, einschließlich des Entfernens des Remote-Zugriffs auf den Root-Benutzer und des Festlegens des Root-Passworts.
Remotezugriff zulassen
Wenn Sie iptables aktiviert haben und von einem anderen Computer aus eine Verbindung zur MySQL-Datenbank herstellen möchten, müssen Sie einen Port in der Firewall Ihres Servers öffnen (der Standardport ist 3306). Sie müssen dies nicht tun, wenn die Anwendung, die MYSQLI verwendet, auf demselben Server ausgeführt wird.
Führen Sie den folgenden Befehl aus, um den Remotezugriff auf den MySQL-Server zu ermöglichen:
sudo ufw enablesudo ufw allow mysql
Starten Sie den MySQL-Dienst
Nachdem die Installation abgeschlossen ist, können Sie den Datenbankdienst starten, indem Sie den folgenden Befehl ausführen. Wenn der Dienst bereits gestartet ist, eine Nachrichtinformiert Sie, dass der Dienst bereits ausgeführt wird:
sudo systemctl start mysql
Beim Neustart starten
Um sicherzustellen, dass der Datenbankserver nach einem Neustart gestartet wird, führen Sie den folgenden Befehl aus:
sudo systemctl enable mysql
Schnittstellen konfigurieren
MySQL ist standardmäßig nicht mehr an Fernzugriffsschnittstellen gebunden.Bearbeiten Sie die Direktive „bind-address“ in /etc/mysql/mysql.conf.in: 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 eine Möglichkeit, mit einem MySQL-Server zu arbeiten, aber dieser Artikel konzentriert sich auf den grundlegendsten und kompatibelsten Ansatz, die mysql
Shell.
-
Führen Sie an der Eingabeaufforderung den folgenden Befehl aus, um die Shell
mysql
zu starten, und geben Sie sie als Root-Benutzer ein:/usr/bin/mysql -u root -p
-
Wenn Sie zur Eingabe eines Kennworts aufgefordert werden, geben Sie das Kennwort ein, das Sie zur Installationszeit festgelegt haben.
Die folgende
mysql
Shell-Eingabeaufforderung sollte angezeigt werden:mysql>
Legen Sie das Root-Kennwort fest
Wenn Sie sich durch Eingabe eines leeren Kennworts angemeldet haben oder das festgelegte Rootpassword ändern möchten, können Sie das Kennwort erstellen oder ändern.
-
Geben Sie für Versionen vor MySQL 5.7 den folgenden Befehl in die Shell
mysql
ein und ersetzen Siepassword
durch Ihr neues Kennwort:UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
Geben Sie für die Version MySQL 5.7 und höher den folgenden Befehl in die Shell
mysql
ein und ersetzen Siepassword
durch Ihr neues Kennwort:UPDATE mysql.user SET authentication_string = PASSWORD('password') WHERE User = 'root';
-
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 thosecommands in Kleinbuchstaben eingeben, funktionieren sie. Konventionell werden die Befehle in Großbuchstaben geschrieben, damit sie sich von Feldnamen und anderen manipulierten Daten abheben.
Wenn Sie das Root-Passwort später zurücksetzen müssen, lesen Sie Zurücksetzen eines MySQL-Root-Passworts.
Benutzer anzeigen
MySQL speichert die Benutzerinformationen in einer eigenen Datenbank. Der Name der Datenbankist mysql. In dieser Datenbank befinden sich die Benutzerinformationen in einer Tabelle, adataset, mit dem Namen 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:
- SELECT teilt MySQL mit, dass Sie nach Daten fragen.
- User, Host, authentication_string teilt MySQL mit, in welche Felder es schauen 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.benutzer “ weist MySQL an, die Daten aus der mysqldatabase und der Benutzertabelle abzurufen.
- Ein Semikolon (;) beendet den Befehl.
Hinweis: Alle SQL-Abfragen enden mit einem Semikolon. MySQL verarbeitet keine queryuntil Sie ein Semikolon eingeben.
Benutzerhosts
Das folgende Beispiel ist die Ausgabe für die vorhergehende 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 sind einem Host zugeordnet, insbesondere dem Host, von dem aus sie eine Verbindung herstellen.Der Root-Benutzer in diesem Beispiel ist für localhost, für die IP-Adresse von localhost und den Hostnamen des Servers definiert.Normalerweise müssen Sie einen Benutzer nur für einen Host festlegen, von dem aus Sie normalerweise eine Verbindung herstellen.
Wenn Sie Ihre Anwendung auf demselben Computer wie der MySQLserver ausführen, ist der Host, mit dem sie standardmäßig eine Verbindung herstellt, localhost. Alle neuen Benutzer, die Sie erstellen, müssen localhost in ihrem Host-Feld haben.
Wenn Ihre Anwendung eine Remoteverbindung herstellt, ist der Hosteintrag, nach dem MySQL sucht, die IP-Adresse oder der DNS-Hostname des Remotecomputers (von dem der Client kommt).
Anonyme Benutzer
In der Beispielausgabe hat ein Eintrag einen Hostwert, aber keinen Benutzernamen oder kein Kennwort.Das ist ein anonymer Benutzer. Wenn ein Client eine Verbindung ohne angegebenen Benutzernamen herstellt, versucht er, eine Verbindung als anonymer Benutzer herzustellen.
Normalerweise möchten Sie keine anonymen Benutzer, aber einige MySQL-Installationen enthalten standardmäßig einen. Wenn Sie einen sehen, sollten Sie entweder den Benutzer löschen (siehe Benutzername mit leeren Anführungszeichen wie ‚ ‚) oder ein Passwort dafür festlegen.
Erstellen einer Datenbank
Es gibt einen Unterschied zwischen einem Datenbankserver und einer Datenbank, obwohl diese Begriffe oft synonym verwendet werden. MySQL ist ein Datenbankserver, dh esverfolgt Datenbanken und steuert den Zugriff darauf. Die Datenbank speichert die Daten und ist die Datenbank, auf die Anwendungen zugreifen möchten, wenn sie mit MySQL interagieren.
Einige Anwendungen erstellen eine Datenbank als Teil ihres Setup-Prozesses, andere erfordern jedoch, dass Sie selbst eine Datenbank erstellen und die Anwendung darüber informieren.
Um eine Datenbank zu erstellen, melden Sie sich bei der Shell mysql
an und führen Sie den folgenden Befehl aus, wobei Sie demodb
durch den Namen der Datenbank ersetzen, die Sie erstellen möchten:
CREATE DATABASE demodb;
Nachdem die Datenbank erstellt wurde, können Sie die Erstellung überprüfen, indem Sie eine Abfrage ausführen, um alle Datenbanken aufzulisten. Das folgende Beispiel zeigt die Abfrage- und Beispielausgabe:
SHOW DATABASES;+--------------------+| Database |+--------------------+| information_schema || demodb || mysql |+--------------------+3 rows in set (0.00 sec)
Datenbankbenutzer hinzufügen
Wenn Anwendungen mit dem Root-Benutzer eine Verbindung zur Datenbank herstellen, verfügen sie normalerweise über mehr Berechtigungen als sie benötigen. Sie können Benutzer hinzufügen, mit denen Anwendungen eine Verbindung zur neuen Datenbank herstellen können. Im folgenden Beispiel wird ein Benutzer namens demouser erstellt.
-
Um einen neuen Benutzer zu erstellen, führen Sie den folgenden Befehl in der Shell
mysql
aus:INSERT INTO mysql.user (User,Host,authentication_string,ssl_cipher,x509_issuer,x509_subject)VALUES('demouser','localhost',PASSWORD('demopassword'),'','','');
-
Wenn Sie Änderungen an der Benutzertabelle in der MySQL-Datenbank vornehmen, weisen Sie MySQL an, die Änderungen zu lesen, indem Sie die Berechtigungen wie folgt leeren:
FLUSH PRIVILEGES;
-
Ü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 |+------------------+-----------+-------------------------------------------+
Erteilen Sie Datenbankbenutzerberechtigungen
Gleich nachdem Sie einen neuen Benutzer erstellt haben, hat er keine Berechtigungen. Der Benutzer kann sich anmelden, aber keine Datenbankänderungen vornehmen.
Zusammenfassung
Wenn Sie nur eine Datenbank und einen Benutzer erstellen, sind Sie fertig. Die hier behandelten Konzepte sollten Ihnen einen soliden Ausgangspunkt geben, um mehr zu erfahren.
- MySQL-Server auf dem Ubuntu-Betriebssystem konfigurieren
- MySQL-Root-Passwort zurücksetzen