Herstellen einer Verbindung zu einer verwalteten Datenbank unter Ubuntu 18.04

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 mitufw 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 BefehlpsqlPGPASSWORD=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 Befehlspsqlfolgendermaß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 vonpsql

  • 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 Befehlpsql, 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-clientbenö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.debverwendet. 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.

Selecting mysql-apt-config configuration options

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-clientinstalliert 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 vonmysqlfolgendermaß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 vonmysql

  • 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 Befehlmysql, 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_passwordtun 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_passwordkonfigurieren. 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 Befehlwgetein 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 Befehlredligefolgt 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 vonredliwie 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-uenthä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 vonredli

  • 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 Befehlredli, 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.