Einführung
Managed databaseshaben eine Reihe von Vorteilen gegenüber selbstverwalteten Datenbanken, einschließlich automatisierter Updates, vereinfachter Skalierung und hoher Verfügbarkeit. Wenn Sie mit verwalteten Datenbanken noch nicht vertraut sind, ist es möglicherweise nicht selbstverständlich, bestimmte Aufgaben wie das Herstellen einer Verbindung zur Datenbank am besten auszuführen.
In diesem Handbuch erfahren Sie, wie Sie Client-Programme für eine Vielzahl von Datenbankverwaltungssystemen (DBMS) installieren, einschließlichPostgreSQL,MySQL undRedis, auf einem Ubuntu 18.04-Server. Außerdem wird erläutert, wie Sie mit diesen Programmen eine Verbindung zu einer verwalteten Datenbankinstanz herstellen.
[.note] #Note: Die in diesem Handbuch beschriebenen Anweisungen wurden mitDigitalOcean Managed Databases getestet, sollten jedoch im Allgemeinen für verwaltete Datenbanken von jedem Cloud-Anbieter funktionieren. Wenn Sie jedoch auf Probleme beim Herstellen einer Verbindung zu einer von einem anderen Anbieter bereitgestellten Datenbank stoßen, sollten Sie deren Dokumentation zu Hilfe konsultieren.
#
Voraussetzungen
Um den Anweisungen in diesem Handbuch zu folgen, benötigen Sie:
-
Zugriff auf einen Server mit Ubuntu 18.04. Dieser Server sollte einen Nicht-Root-Benutzer mit Administratorrechten und eine mit
ufw
konfigurierte Firewall haben. Befolgen Sie dazu unsereInitial Server Setup Guide for Ubuntu 18.04. -
Eine verwaltete Datenbankinstanz. Dieses Lernprogramm enthält Anweisungen zum Herstellen einer Verbindung zu verschiedenen Datenbankverwaltungssystemen, insbesondere PostgreSQL, MySQL und Redis. Um eine DigitalOcean Managed Database bereitzustellen, lesen Sie unsere Dokumentation für das DBMS Ihrer Wahl:
Sobald Sie diese eingerichtet haben, springen Sie zu dem Abschnitt, der mit Ihrem DBMS übereinstimmt.
Herstellen einer Verbindung zu einer verwalteten PostgreSQL-Datenbank
Um eine Verbindung zu einer verwalteten PostgreSQL-Datenbank herzustellen, können Siepsql
verwenden, den Standard-Befehlszeilenclient für Postgres. Es ist Open Source und wird von der PostgreSQL-Entwicklungsgruppe verwaltet. In der Regel ist es enthalten, wenn Sie den PostgreSQL-Server herunterladen. Sie könnenpsql
jedoch selbst installieren, indem Sie das Paketpostgresql-client
mit APT installieren.
Wenn Sie dies in letzter Zeit noch nicht getan haben, aktualisieren Sie den Paketindex Ihres Servers:
sudo apt update
Führen Sie dann den folgenden Befehl aus, umpsql
zu installieren:
sudo apt install postgresql-client
APT fordert Sie auf, die Installation des Pakets zu bestätigen. Drücken Sie dazuENTER
.
Anschließend können Sie eine Verbindung zu Ihrer verwalteten Postgres-Datenbank herstellen, ohne dass eine weitere Konfiguration erforderlich ist. Beispielsweise können Siepsql
mit den folgenden Flags aufrufen:
-
-U
, der PostgreSQL-Benutzer, als den Sie eine Verbindung herstellen möchten -
-h
, der Hostname oder die IP-Adresse der verwalteten Datenbank -
-p
, der TCP-Port, an dem die verwaltete Datenbank auf Verbindungen wartet -
-d
, die spezifische Datenbank, zu der Sie eine Verbindung herstellen möchten -
-v
, kurz für "Variable", steht vor anderen Verbindungsvariablen, gefolgt von einem Gleichheitszeichen (=
) und den Variablenwerten. Wenn Sie beispielsweise das CA-Zertifikat der Datenbank beim Herstellen einer Verbindung überprüfen möchten, fügen Sie-v sslmode=require
in Ihren Befehl ein -
-W
, wodurchpsql
angewiesen wird, Sie zur Eingabe des Kennworts des PostgreSQL-Benutzers aufzufordern. Beachten Sie, dass Sie dem Befehlpsql
PGPASSWORD=password
voranstellen können. Es wird jedoch allgemein als sicherer angesehen, keine Kennwörter in die Befehlszeile aufzunehmen
Mit diesen Flags würde die Syntax des Befehlspsql
folgendermaßen aussehen:
psql -U user -h host -p port -d database -v variable=value -W
Wenn Ihr verwalteter Datenbankanbieter einen URI (uniform resource identifer) für die Verbindung anbietet, können Sie alternativ die folgende Syntax verwenden:
psql postgresql://username:password@host:port/database?option_1=value&option_n=value
[.Hinweis]##
Note: Wenn Sie eine Verbindung zu einer von DigitalOcean verwalteten Datenbank herstellen, finden Sie alle diese Verbindungsinformationen in IhrenCloud Control Panel. Klicken Sie im Menü der linken Seitenleiste aufDatabases, dann auf die Datenbank, zu der Sie eine Verbindung herstellen möchten, und scrollen Sie nach unten, um den AbschnittConnection Details zu finden. Von dort aus haben Sie folgende Möglichkeiten:
-
Wählen Sie die OptionConnection parameters und kopieren Sie die relevanten Felder einzeln in die zuvor beschriebene Syntax von
psql
-
Wählen Sie die OptionConnection String und kopieren Sie einen vorgefertigten Verbindungs-URI, den Sie in die oben beschriebene Verbindungs-URI-Syntax einfügen können
-
Wählen Sie die OptionFlags und kopieren Sie einen gebrauchsfertigen Befehl
psql
, den Sie in Ihr Terminal einfügen können, um die Verbindung herzustellen
Damit können Sie mit Ihrer verwalteten PostgreSQL-Instanz beginnen. Weitere Informationen zur Interaktion mit PostgreSQL finden Sie in unserem Handbuch zuHow to Manage an SQL Database. Möglicherweise finden Sie auch unsereIntroduction to Queries in PostgreSQL nützlich.
Herstellen einer Verbindung zu einer verwalteten MySQL-Datenbank
Um eine Verbindung zu einer verwalteten MySQL-Datenbank herzustellen, können Sie den offiziellen MySQL-Datenbank-Client verwenden. Unter Ubuntu wird dieser Client normalerweise installiert, indem das Paketmysql-client
über APT heruntergeladen wird. Wenn Sie jedoch die Standard-Ubuntu-Repositorys verwenden, wird Version 5.7 des Programms installiert.
Um auf eine von DigitalOcean verwaltete MySQL-Datenbank zugreifen zu können, müssen Sie Version 8.0 oder höher installieren. Dazu müssen Sie zuerst das MySQL-Software-Repository hinzufügen, bevor Sie das Paket installieren.
[.Hinweis]##
Note: Wenn Sie nicht die neueste Version vonmysql-client
installieren müssen, können Sie einfach den Paketindex Ihres Servers aktualisieren undmysql-client
installieren, ohne das MySQL-Software-Repository hinzuzufügen:
sudo apt update
sudo apt install mysql-client
Wenn Sie nicht sicher sind, ob Sie die neueste Version vonmysql-client
benötigen, lesen Sie die Dokumentation zu den verwalteten Datenbanken Ihres Cloud-Anbieters.
Navigieren Sie zunächst in Ihrem Webbrowser zuthe MySQL APT Repository page. Suchen Sie die SchaltflächeDownload in der unteren rechten Ecke und klicken Sie sich zur nächsten Seite durch. Auf dieser Seite werden Sie aufgefordert, sich anzumelden oder sich für ein Oracle-Webkonto anzumelden. Sie können das überspringen und stattdessen nach dem Link suchen, auf demNo thanks, just start my download steht. Klicken Sie mit der rechten Maustaste auf den Link und wählen SieCopy Link Address aus (diese Option kann je nach Browser unterschiedlich formuliert sein).
Jetzt können Sie die Datei herunterladen. Wechseln Sie auf Ihrem Server in ein Verzeichnis, in das Sie schreiben können:
cd /tmp
Laden Sie die Datei mitcurl
herunter und denken Sie daran, die gerade kopierte Adresse anstelle des hervorgehobenen Teils des folgenden Befehls einzufügen. Sie müssen auch zwei Befehlszeilenflags ancurl
übergeben. -O
weistcurl
an, anstelle der Standardausgabe in eine Datei auszugeben. DasL
-Flag bewirkt, dasscurl
HTTP-Weiterleitungen folgen. Dies ist in diesem Fall erforderlich, da die von Ihnen kopierte Adresse vor dem Herunterladen der Datei tatsächlich an einen anderen Speicherort umleitet:
curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb
Die Datei sollte jetzt in Ihr aktuelles Verzeichnis heruntergeladen werden. Listen Sie die Dateien auf, um sicherzustellen, dass:
ls
Sie werden den Dateinamen in der Ausgabe sehen:
Outputmysql-apt-config_0.8.13-1_all.deb
. . .
Jetzt können Sie das MySQL APT-Repository zur Repository-Liste Ihres Systems hinzufügen. Der Befehldpkg
wird zum Installieren, Entfernen und Überprüfen der Softwarepakete von.deb
verwendet. Der folgende Befehl enthält das Flag-i
, das angibt, dass Sie aus der angegebenen Datei installieren möchten:
sudo dpkg -i mysql-apt-config*
Während der Installation wird ein Konfigurationsbildschirm angezeigt, in dem Sie angeben können, welche Version von MySQL Sie bevorzugen. Außerdem können Sie Repositorys für andere MySQL-bezogene Tools installieren. Die Standardeinstellungen fügen die Repository-Informationen für die neueste stabile Version von MySQL hinzu und sonst nichts. Dies ist, was wir wollen, also verwenden Sie den Abwärtspfeil, um zur MenüoptionOk
zu navigieren undENTER
zu drücken.
Anschließend fügt das Paket das Repository vollständig hinzu. Aktualisieren Sie den Paketcache vonapt
, um die neuen Softwarepakete verfügbar zu machen:
sudo apt update
Als Nächstes können Sie Ihr System ein wenig aufräumen und die heruntergeladene Datei löschen, da Sie sie in Zukunft nicht mehr benötigen:
rm mysql-apt-config*
[.Hinweis]##
Note: Wenn Sie jemals die Konfiguration dieser Repositorys aktualisieren müssen, führen Sie den folgenden Befehl aus, um Ihre neuen Optionen auszuwählen:
sudo dpkg-reconfigure mysql-apt-config
Führen Sie nach Auswahl der neuen Optionen den folgenden Befehl aus, um den Paketcache zu aktualisieren:
sudo apt update
Nachdem Sie die MySQL-Repositorys hinzugefügt haben, können Sie die eigentliche MySQL-Client-Software installieren. Führen Sie dies mit dem folgenden Befehlapt
aus:
sudo apt install mysql-client
Überprüfen Sie nach Abschluss dieses Befehls die Versionsnummer der Software, um sicherzustellen, dass Sie über die neueste Version verfügen:
mysql --version
Outputmysql Ver 8.0.17-cluster for Linux on x86_64 (MySQL Community Server - GPL)
Nachdem Sie das Paketmysql-client
installiert haben, können Sie auf Ihre verwaltete Datenbank zugreifen, indem Sie den Befehlmysql
mit den folgenden Flags als Argument ausführen:
-
-u
, der MySQL-Benutzer, als den Sie eine Verbindung herstellen möchten -
-p
weistmysql
an, nach dem Kennwort des Benutzers zu fragen. Sie können Ihr Kennwort direkt in den Verbindungsbefehl nach dem Flag-p
einfügen (ohne Leerzeichen, wie in-ppassword
). Aus Sicherheitsgründen wird dies jedoch im Allgemeinen nicht empfohlen -
-h
, der Hostname oder die IP-Adresse der Datenbank -
-P
, der TCP-Port, an dem MySQL auf Verbindungen wartet -
-D
, die spezifische Datenbank, zu der Sie eine Verbindung herstellen möchten
Mit diesen Flags sieht die Syntax vonmysql
folgendermaßen aus:
mysql -u user -p -h host -P port -D database
Wenn Sie einen Verbindungs-URI haben, mit dem Sie eine Verbindung herstellen können, verwenden Sie alternativ eine Syntax wie die folgende:
mysql mysql://user:password@host:port/database?option_1=value&option_n=value
[.Hinweis]##
Note: Wenn Sie eine Verbindung zu einer von DigitalOcean verwalteten Datenbank herstellen, finden Sie alle diese Verbindungsinformationen in IhrenCloud Control Panel. Klicken Sie im Menü der linken Seitenleiste aufDatabases, dann auf die Datenbank, zu der Sie eine Verbindung herstellen möchten, und scrollen Sie nach unten, um den AbschnittConnection Details zu finden. Von dort aus haben Sie folgende Möglichkeiten:
-
Wählen Sie die OptionConnection parameters und kopieren Sie die relevanten Felder einzeln in die zuvor beschriebene Syntax von
mysql
-
Wählen Sie die OptionConnection String und kopieren Sie einen vorgefertigten Verbindungs-URI, den Sie in die oben beschriebene Verbindungszeichenfolge einfügen können
-
Wählen Sie die OptionFlags und kopieren Sie einen gebrauchsfertigen Befehl
mysql
, den Sie in Ihr Terminal einfügen können, um die Verbindung herzustellen
Damit können Sie mit Ihrer verwalteten MySQL-Instanz beginnen. Weitere Informationen zur Interaktion mit MySQL finden Sie in unserem Handbuch zuHow to Manage an SQL Database. Möglicherweise finden Sie auch unsereIntroduction to Queries in MySQL nützlich.
Ein Hinweis zur Kennwortauthentifizierung in MySQL 8
In MySQL 8.0 und höher ist das Standardauthentifizierungs-Plugincaching_sha2_password
. Zum jetzigen Zeitpunkt unterstützt PHP jedochcaching_sha2_password
nicht. Wenn Sie Ihre verwaltete MySQL-Datenbank mit einer Anwendung verwenden möchten, die PHP verwendet, wie z. B. WordPress oder phpMyAdmin, kann dies zu Problemen führen, wenn die Anwendung versucht, eine Verbindung zur Datenbank herzustellen.
Wenn Sie Zugriff auf die Konfigurationsdatei der Datenbank haben, können Sie eine Einstellung hinzufügen, um die Verwendung eines PHP-unterstützten Authentifizierungs-Plugins zu erzwingen - z. B.mysql_native_password
- standardmäßig:
Beispiel MySQL-Konfigurationsdatei
[mysqld]
default-authentication-plugin=mysql_native_password
Einige Anbieter verwalteter Datenbanken - einschließlich DigitalOcean - stellen die Datenbankkonfigurationsdatei jedoch Endbenutzern nicht zur Verfügung. In diesem Fall können Sie eine Verbindung zur Datenbank herstellen und einen BefehlALTER USER
für alle vorhandenen MySQL-Benutzer ausführen, die eine Verbindung zur Datenbank herstellen müssen, dies jedoch nicht mit dem Plugincaching_sha2_password
tun können:
ALTER USER user IDENTIFIED WITH mysql_native_password BY 'password';
Natürlich können Sie neue Benutzer so einstellen, dass sie sich mitmysql_native_password
authentifizieren, indem Sie das Plugin in ihren jeweiligenCREATE USER
-Anweisungen angeben:
CREATE USER user IDENTIFIED WITH mysql_native_password BY 'password';
Wenn Sie eine von DigitalOcean verwaltete Datenbank verwenden, beachten Sie, dass Sie das Kennwort dieses Benutzers in Ihrer Cloud-Systemsteuerung nicht sehen können, wenn Sie einen Benutzer für die Authentifizierung mit einem anderen Plugin alscaching_sha2_password
konfigurieren. Aus diesem Grund sollten Sie sicherstellen, dass Sie die Kennwörter aller Benutzer notieren, die sich an einem sicheren Ort mitmysql_native_password
oder anderen Plugins authentifizieren.
Herstellen einer Verbindung zu einer verwalteten Redis-Datenbank
Wenn Sie Redis lokal installieren, wirdredis-cli
mitgeliefert, die Redis-Befehlszeilenschnittstelle. Sie könnenredis-cli
verwenden, um eine Verbindung zu einer entfernten, verwalteten Redis-Instanz herzustellen, TLS / SSL-Verbindungen werden jedoch nicht nativ unterstützt. Es gibt Möglichkeiten,redis-cli
so zu konfigurieren, dass eine sichere Verbindung zu einer verwalteten Redis-Instanz hergestellt wird (z. B. durchconfiguring a TLS tunnel). Es gibt jedoch alternative Redis-Clients mit integrierter TLS-Unterstützung.
Für DigitalOcean Managed Redis-Datenbanken empfehlen wir die Installation von Redli, einem interaktiven Open-Source-Redis-Terminal. Navigieren Sie dazu im Redli GitHub-Projekt zuReleases Page und suchen Sie dieAssets-Tabelle für die neueste Version. Ab diesem Zeitpunkt wird dies die Version 0.4.4 sein.
Dort finden Sie den Link für die Datei, die auflinux_amd64.tar.gz
endet. Dieser Link verweist auf eine Archivdatei namenstarball, die beim Extrahieren einige Dateien auf Ihrem System erstellt. Klicken Sie mit der rechten Maustaste auf diesen Link und wählen SieCopy link address aus (diese Option kann je nach Webbrowser unterschiedlich sein).
Wechseln Sie auf Ihrem Server in ein Verzeichnis, in das Sie schreiben können:
cd /tmp
Fügen Sie dann den Link in den folgenden Befehlwget
ein und ersetzen Sie die markierte URL. Dieser Befehl lädt die Datei auf Ihren Server herunter:
wget https://github.com/IBM-Cloud/redli/releases/download/v0.4.4/redli_0.4.4_linux_amd64.tar.gz
Nachdem die Datei auf Ihren Server heruntergeladen wurde, extrahieren Sie das Archiv:
tar xvf redli_0.4.4_linux_amd64.tar.gz
Dadurch werden die folgenden Dateien auf Ihrem Server erstellt:
OutputLICENSE.txt
README.md
redli
Dieredli
-Datei ist die Redlibinary file. Verschieben Sie es in das Verzeichnis/usr/local/bin
, den Speicherort, an dem Ubuntu nach ausführbaren Dateien sucht:
sudo mv redli /usr/local/bin/
Zu diesem Zeitpunkt können Sie Ihr System ein wenig aufräumen und den Tarball entfernen:
rm redli_0.4.4_linux_amd64.tar.gz
Jetzt können Sie mit Redli eine Verbindung zu Ihrer verwalteten Redis-Instanz herstellen. Sie können dies tun, indem Sie den Befehlredli
gefolgt von den folgenden Flags ausführen:
-
-h
, der Host, zu dem eine Verbindung hergestellt werden soll. Dies kann entweder ein Hostname oder eine IP-Adresse sein -
-a
, das Kennwort zur Authentifizierung bei der Redis-Instanz -
-p
, der Port, zu dem eine Verbindung hergestellt werden soll
Mit diesen Flags wäre die Syntax vonredli
wie folgt. Beachten Sie, dass dieses Beispiel auch die Option--tls
enthält, mit der Sie über TLS / SSL eine Verbindung zu einer verwalteten Redis-Datenbank herstellen können, ohne dass ein Tunnel erforderlich ist:
redli --tls -h host -a password -p port
Ein Vorteil von Redli überredis-cli
besteht darin, dass es dasrediss
-Protokoll versteht, mit dem ein URI festgelegt wird, der auf eine Redis-Datenbank verweist. Auf diese Weise können Sie eine Verbindungszeichenfolge verwenden, um auf Ihre Datenbank zuzugreifen:
redli --tls -u rediss://user:password@host:port
Beachten Sie, dass dieses Beispiel das Flag-u
enthält, das angibt, dass das folgende Argument ein Verbindungs-URI ist.
[.Hinweis]##
Note: Wenn Sie eine Verbindung zu einer von DigitalOcean verwalteten Datenbank herstellen, finden Sie alle diese Verbindungsinformationen in IhrenCloud Control Panel. Klicken Sie im Menü der linken Seitenleiste aufDatabases, klicken Sie dann auf die Datenbank, zu der Sie eine Verbindung herstellen möchten, und scrollen Sie nach unten, um den AbschnittConnection Details zu finden. Von dort aus haben Sie folgende Möglichkeiten:
-
Wählen Sie die OptionConnection parameters und kopieren Sie die relevanten Felder einzeln in die zuvor beschriebene Syntax von
redli
-
Wählen Sie die OptionConnection String und kopieren Sie einen vorgefertigten Verbindungs-URI, den Sie mit der oben beschriebenen Verbindungszeichenfolgensyntax verwenden können
-
Wählen Sie die OptionFlags und kopieren Sie einen gebrauchsfertigen Befehl
redli
, den Sie in Ihr Terminal einfügen können, um die Verbindung herzustellen
Anschließend können Sie mit Ihrer verwalteten Redis-Instanz interagieren. Weitere Informationen zur Arbeit mit Redis finden Sie in unseren Serien oder Spickzettel zuHow To Manage a Redis Database.
Fazit
Als relativ neue Entwicklung bei Cloud-Diensten sind viele Verfahren, die für selbstverwaltete Datenbanken bekannt sind, für Datenbanken, die von Cloud-Anbietern verwaltet werden, nicht umfassend dokumentiert. Eine der grundlegendsten Methoden, auf die Datenbank zuzugreifen, ist für diejenigen, die mit verwalteten Datenbanken noch nicht vertraut sind, möglicherweise nicht sofort ersichtlich. In diesem Lernprogramm möchten wir Ihnen den Einstieg in die Verwendung einer verwalteten Datenbank zum Speichern von Daten erleichtern.
Weitere Informationen zum Arbeiten mit Datenbanken finden Sie in unserer Auswahl andatabase-related content, einschließlich Tutorials, die sich direkt aufPostgreSQL,MySQL undRedis konzentrieren.
Weitere Informationen zu von DigitalOcean verwalteten Datenbanken finden Sie in unserenManaged Databases product documentation.