Comment se connecter à une base de données gérée sur Ubuntu 18.04

introduction

Managed databases présente un certain nombre d'avantages par rapport aux bases de données autogérées, notamment des mises à jour automatisées, une mise à l'échelle simplifiée et une haute disponibilité. Cependant, si vous débutez avec des bases de données gérées, la meilleure façon d'effectuer certaines tâches - comme la connexion à la base de données - peut ne pas être évidente.

Dans ce guide, nous verrons comment installer des programmes clients pour une variété de systèmes de gestion de base de données (SGBD), y comprisPostgreSQL,MySQL etRedis, sur un serveur Ubuntu 18.04. Nous expliquerons également comment utiliser ces programmes pour se connecter à une instance de base de données gérée.

[.note] #Note: Les instructions décrites dans ce guide ont été testées avecDigitalOcean Managed Databases, mais elles devraient généralement fonctionner pour les bases de données gérées de tout fournisseur de cloud. Si, toutefois, vous rencontrez des problèmes de connexion à une base de données provisionnée à partir d'un autre fournisseur, vous devriez consulter leur documentation pour obtenir de l'aide.
#

Conditions préalables

Pour suivre les instructions détaillées dans ce guide, vous aurez besoin des éléments suivants:

  • Accès à un serveur exécutant Ubuntu 18.04. Ce serveur doit avoir un utilisateur non root avec des privilèges administratifs et un pare-feu configuré avecufw. Pour configurer cela, suivez nosInitial Server Setup Guide for Ubuntu 18.04.

  • Une instance de base de données gérée. Ce didacticiel fournit des instructions sur la connexion à divers systèmes de gestion de bases de données, en particulier PostgreSQL, MySQL et Redis. Pour provisionner une base de données gérée DigitalOcean, consultez notre documentation relative au SGBD de votre choix:

Une fois que vous les avez en place, passez à la section qui s’aligne sur votre SGBD.

Connexion à une base de données PostgreSQL gérée

Pour vous connecter à une base de données PostgreSQL gérée, vous pouvez utiliserpsql, le client de ligne de commande standard pour Postgres. Il est open-source, maintenu par le groupe de développement PostgreSQL et est généralement inclus lorsque vous téléchargez le serveur PostgreSQL. Cependant, vous pouvez installerpsql par lui-même en installant le packagepostgresql-client avec APT.

Si vous ne l’avez pas fait récemment, mettez à jour l’index des paquets de votre serveur:

sudo apt update

Exécutez ensuite la commande suivante pour installerpsql:

sudo apt install postgresql-client

APT vous demandera de confirmer que vous souhaitez installer le package. Faites-le en appuyant surENTER.

Ensuite, vous pouvez vous connecter à votre base de données Postgres gérée sans avoir besoin de configuration supplémentaire. Par exemple, vous pouvez appelerpsql avec les indicateurs suivants:

  • -U, l'utilisateur PostgreSQL sous lequel vous souhaitez vous connecter

  • -h, le nom d'hôte ou l'adresse IP de la base de données gérée

  • -p, le port TCP sur lequel la base de données gérée écoute les connexions

  • -d, la base de données spécifique à laquelle vous souhaitez vous connecter

  • -v, abréviation de «variable», précède les autres variables de connexion, suivi d'un signe égal (=) et des valeurs des variables. Par exemple, si vous souhaitez valider le certificat CA de la base de données lorsque vous vous connectez, vous devez inclure-v sslmode=require dans votre commande

  • -W, qui dit àpsql de vous demander le mot de passe de l'utilisateur PostgreSQL. Notez que vous pouvez faire précéder la commandepsql parPGPASSWORD=password, mais il est généralement considéré comme plus sûr de ne pas inclure les mots de passe sur la ligne de commande

Avec ces indicateurs inclus, la syntaxe de la commandepsql ressemblerait à ceci:

psql -U user -h host -p port -d database -v variable=value -W

Sinon, si votre fournisseur de base de données gérée propose ununiform resource identifer (URI) pour la connexion, vous pouvez utiliser la syntaxe suivante:

psql postgresql://username:password@host:port/database?option_1=value&option_n=value

[.Remarque]##

Note: Si vous vous connectez à une base de données gérée DigitalOcean, vous pouvez trouver toutes ces informations de connexion dans vosCloud Control Panel. Cliquez surDatabases dans le menu de la barre latérale gauche, puis cliquez sur la base de données à laquelle vous souhaitez vous connecter et faites défiler vers le bas pour trouver sa sectionConnection Details. De là, vous effectuez l'une des opérations suivantes:

  • Sélectionnez l'optionConnection parameters et copiez les champs appropriés individuellement dans la syntaxepsql détaillée précédemment

  • Sélectionnez l'optionConnection String et copiez un URI de connexion prêt à l'emploi que vous pouvez coller dans la syntaxe d'URI de connexion décrite ci-dessus

  • Sélectionnez l'optionFlags et copiez une commandepsql prête à l'emploi que vous pouvez coller dans votre terminal pour établir la connexion

Avec cela, vous êtes prêt à commencer à utiliser votre instance PostgreSQL gérée. Pour plus d'informations sur la façon d'interagir avec PostgreSQL, consultez notre guide surHow to Manage an SQL Database. Vous pouvez également trouver nosIntroduction to Queries in PostgreSQL utiles.

Connexion à une base de données MySQL gérée

Pour vous connecter à une base de données MySQL gérée, vous pouvez utiliser le client de base de données MySQL officiel. Sur Ubuntu, ce client est généralement installé en téléchargeant le packagemysql-client via APT. Toutefois, si vous utilisez les référentiels Ubuntu par défaut, la version 5.7 du programme sera installée.

Pour accéder à une base de données MySQL gérée DigitalOcean, vous devez installer la version 8.0 ou une version ultérieure. Pour ce faire, vous devez d'abord ajouter le référentiel de logiciels MySQL avant d'installer le paquet.

[.Remarque]##

Note: Si vous n’avez pas besoin d’installer la dernière version demysql-client, vous pouvez simplement mettre à jour l’index des packages de votre serveur et installermysql-client sans ajouter le référentiel de logiciels MySQL:

sudo apt update
sudo apt install mysql-client

Si vous ne savez pas si vous avez besoin de la dernière version demysql-client, vous devriez consulter la documentation des bases de données gérées de votre fournisseur de cloud.

Commencez par accéder àthe MySQL APT Repository page dans votre navigateur Web. Trouvez le boutonDownload dans le coin inférieur droit et cliquez sur la page suivante. Cette page vous invitera à vous connecter ou à vous inscrire pour un compte Web Oracle. Vous pouvez ignorer cela et rechercher à la place le lien qui ditNo thanks, just start my download. Cliquez avec le bouton droit sur le lien et sélectionnezCopy Link Address (cette option peut être libellée différemment, selon votre navigateur).

Vous êtes maintenant prêt à télécharger le fichier. Sur votre serveur, accédez à un répertoire dans lequel vous pouvez écrire:

cd /tmp

Téléchargez le fichier à l'aide decurl, en vous rappelant de coller l'adresse que vous venez de copier à la place de la partie en surbrillance de la commande suivante. Vous devez également passer deux indicateurs de ligne de commande àcurl. -O demande àcurl de sortir dans un fichier au lieu de la sortie standard. L'indicateurL obligecurl à suivre les redirections HTTP, ce qui est nécessaire dans ce cas car l'adresse que vous avez copiée redirige en fait vers un autre emplacement avant le téléchargement du fichier:

curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.deb

Le fichier devrait maintenant être téléchargé dans votre répertoire actuel. Listez les fichiers pour vous assurer que:

ls

Vous verrez le nom de fichier répertorié dans le résultat:

Outputmysql-apt-config_0.8.13-1_all.deb
. . .

Vous pouvez maintenant ajouter le référentiel MySQL APT à la liste de référentiels de votre système. La commandedpkg est utilisée pour installer, supprimer et inspecter les progiciels de.deb. La commande suivante inclut l'indicateur-i, indiquant que vous souhaitez installer à partir du fichier spécifié:

sudo dpkg -i mysql-apt-config*

Au cours de l’installation, un écran de configuration vous permettant d’indiquer la version de MySQL que vous préférez, ainsi qu’une option permettant d’installer des référentiels pour d’autres outils liés à MySQL. Les valeurs par défaut ajouteront les informations du référentiel pour la dernière version stable de MySQL et rien d’autre. C'est ce que nous voulons, alors utilisez la flèche vers le bas pour accéder à l'option de menuOk et appuyez surENTER.

Selecting mysql-apt-config configuration options

Après cela, le paquet finira d’ajouter le référentiel. Actualisez le cache de vos packagesapt pour rendre les nouveaux packages logiciels disponibles:

sudo apt update

Ensuite, vous pouvez nettoyer un peu votre système et supprimer le fichier que vous avez téléchargé, car vous n'en aurez plus besoin par la suite:

rm mysql-apt-config*

[.Remarque]##

Note: Si vous avez besoin de mettre à jour la configuration de ces référentiels, exécutez la commande suivante pour sélectionner vos nouvelles options:

sudo dpkg-reconfigure mysql-apt-config

Après avoir sélectionné vos nouvelles options, exécutez la commande suivante pour actualiser le cache de votre package:

sudo apt update

Maintenant que vous avez ajouté les référentiels MySQL, vous êtes prêt à installer le logiciel client MySQL proprement dit. Faites-le avec la commandeapt suivante:

sudo apt install mysql-client

Une fois cette commande terminée, vérifiez le numéro de version du logiciel pour vous assurer que vous disposez de la dernière version:

mysql --version
Outputmysql  Ver 8.0.17-cluster for Linux on x86_64 (MySQL Community Server - GPL)

Après avoir installé le packagemysql-client, vous pouvez accéder à votre base de données gérée en exécutant la commandemysql avec les indicateurs suivants comme arguments:

  • -u, l'utilisateur MySQL avec lequel vous souhaitez vous connecter

  • -p, dit àmysql de demander le mot de passe de l'utilisateur. Vous pouvez inclure votre mot de passe directement dans la commande de connexion en suivant l'indicateur-p (sans espace, comme dans-ppassword) mais, pour des raisons de sécurité, ce n'est généralement pas recommandé

  • -h, le nom d'hôte ou l'adresse IP de la base de données

  • -P, le port TCP sur lequel MySQL écoute les connexions

  • -D, la base de données spécifique à laquelle vous souhaitez vous connecter

En utilisant ces indicateurs, la syntaxemysql ressemblera à ceci:

mysql -u user -p -h host -P port -D database

Sinon, si vous avez un URI de connexion que vous pouvez utiliser pour vous connecter, utilisez une syntaxe comme celle-ci:

mysql mysql://user:password@host:port/database?option_1=value&option_n=value

[.Remarque]##

Note: Si vous vous connectez à une base de données gérée DigitalOcean, vous pouvez trouver toutes ces informations de connexion dans vosCloud Control Panel. Cliquez surDatabases dans le menu de la barre latérale gauche, puis cliquez sur la base de données à laquelle vous souhaitez vous connecter et faites défiler vers le bas pour trouver sa sectionConnection Details. De là, vous effectuez l'une des opérations suivantes:

  • Sélectionnez l'optionConnection parameters et copiez les champs appropriés individuellement dans la syntaxemysql décrite précédemment

  • Sélectionnez l'optionConnection String et copiez un URI de connexion prêt à l'emploi que vous pouvez coller dans la chaîne de connexion détaillée ci-dessus

  • Sélectionnez l'optionFlags et copiez une commandemysql prête à l'emploi que vous pouvez coller dans votre terminal pour établir la connexion

Avec cela, vous êtes prêt à commencer à utiliser votre instance MySQL gérée. Pour plus d'informations sur la façon d'interagir avec MySQL, consultez notre guide surHow to Manage an SQL Database. Vous pouvez également trouver nosIntroduction to Queries in MySQL utiles.

Remarque concernant l'authentification par mot de passe dans MySQL 8

Dans MySQL 8.0 et plus récent, le plugin d'authentification par défaut estcaching_sha2_password. Au moment d'écrire ces lignes, cependant, PHP ne prend pas en chargecaching_sha2_password. Si vous envisagez d'utiliser votre base de données MySQL gérée avec une application utilisant PHP, telle que WordPress ou phpMyAdmin, des problèmes peuvent survenir lorsque l'application tente de se connecter à la base de données.

Si vous avez accès au fichier de configuration de la base de données, vous pouvez ajouter un paramètre pour l'obliger à utiliser un plugin d'authentification compatible PHP - par exemple,mysql_native_password - par défaut:

Exemple de fichier de configuration MySQL

[mysqld]
default-authentication-plugin=mysql_native_password

Cependant, certains fournisseurs de bases de données gérées - y compris DigitalOcean - ne mettent pas le fichier de configuration de base de données à la disposition des utilisateurs finaux. Dans ce cas, vous pouvez vous connecter à la base de données et exécuter une commandeALTER USER pour tous les utilisateurs MySQL existants qui ont besoin de se connecter à la base de données, mais ne peuvent pas le faire avec le plugincaching_sha2_password:

ALTER USER user IDENTIFIED WITH mysql_native_password BY 'password';

Bien sûr, vous pouvez configurer les nouveaux utilisateurs pour qu'ils s'authentifient avecmysql_native_password en spécifiant le plugin dans leurs déclarationsCREATE USER respectives:

CREATE USER user IDENTIFIED WITH mysql_native_password BY 'password';

Si vous utilisez une base de données gérée DigitalOcean, sachez que si vous configurez un utilisateur pour s'authentifier avec un plug-in autre quecaching_sha2_password, vous ne pourrez pas voir le mot de passe de cet utilisateur dans votre panneau de configuration cloud. Pour cette raison, vous devez vous assurer de noter les mots de passe de tous les utilisateurs qui s'authentifient avecmysql_native_password ou d'autres plugins dans un emplacement sécurisé.

Connexion à une base de données Redis gérée

Lorsque vous installez Redis localement, il est fourni avecredis-cli, l'interface de ligne de commande Redis. Vous pouvez utiliserredis-cli pour vous connecter à une instance Redis gérée distante, mais il ne prend pas en charge les connexions TLS / SSL de manière native. Il existe des façons de configurerredis-cli pour se connecter en toute sécurité à une instance Redis gérée (par exemple, parconfiguring a TLS tunnel), mais il existe d'autres clients Redis qui ont un support TLS intégré.

Pour les bases de données Redis gérées par DigitalOcean, nous vous recommandons d'installer Redli, un terminal Redis interactif à source ouverte. Pour ce faire, accédez auxReleases Page sur le projet Redli GitHub et recherchez la tableAssets pour la dernière version. À ce jour, ce sera la version 0.4.4.

Là, trouvez le lien pour le fichier se terminant parlinux_amd64.tar.gz. Ce lien pointe vers un fichier d'archive appelétarball qui, une fois extrait, créera quelques fichiers sur votre système. Cliquez avec le bouton droit sur ce lien et sélectionnezCopy link address (cette option peut différer selon votre navigateur Web).

Sur votre serveur, accédez à un répertoire dans lequel vous pouvez écrire:

cd /tmp

Ensuite, collez le lien dans la commandewget suivante, en remplaçant l'URL en surbrillance. Cette commande va télécharger le fichier sur votre serveur:

wget https://github.com/IBM-Cloud/redli/releases/download/v0.4.4/redli_0.4.4_linux_amd64.tar.gz

Une fois le fichier téléchargé sur votre serveur, extrayez l'archive:

tar xvf redli_0.4.4_linux_amd64.tar.gz

Cela créera les fichiers suivants sur votre serveur:

OutputLICENSE.txt
README.md
redli

Le fichierredli est le Redlibinary file. Déplacez-le dans le répertoire/usr/local/bin, l'emplacement où Ubuntu recherche les fichiers exécutables:

sudo mv redli /usr/local/bin/

À ce stade, vous pouvez nettoyer un peu votre système et supprimer le fichier compressé:

rm redli_0.4.4_linux_amd64.tar.gz

Vous pouvez maintenant utiliser Redli pour vous connecter à votre instance Redis gérée. Vous pouvez le faire en exécutant la commanderedli suivie de ces indicateurs:

  • -h, l'hôte auquel se connecter. Cela peut être soit un nom d'hôte ou une adresse IP

  • -a, le mot de passe utilisé pour s'authentifier auprès de l'instance Redis

  • -p, le port auquel se connecter

Avec ces indicateurs inclus, la syntaxeredli serait la suivante. Notez que cet exemple inclut également l'option--tls, qui vous permet de vous connecter à une base de données Redis gérée via TLS / SSL sans avoir besoin d'un tunnel:

redli --tls -h host -a password -p port

Un avantage que Redli a surredis-cli est qu'il comprend le protocolerediss, qui est utilisé pour désigner un URI pointant vers une base de données Redis. Cela vous permet d'utiliser une chaîne de connexion pour accéder à votre base de données:

redli --tls -u rediss://user:password@host:port

Notez que cet exemple inclut l'indicateur-u, qui spécifie que l'argument suivant sera un URI de connexion.

[.Remarque]##

Note: Si vous vous connectez à une base de données gérée DigitalOcean, vous pouvez trouver toutes ces informations de connexion dans vosCloud Control Panel. Cliquez surDatabases dans le menu de la barre latérale gauche, puis cliquez sur la base de données à laquelle vous souhaitez vous connecter et faites défiler vers le bas pour trouver la sectionConnection Details. De là, vous effectuez l'une des opérations suivantes:

  • Sélectionnez l'optionConnection parameters et copiez les champs appropriés individuellement dans la syntaxeredli détaillée précédemment

  • Sélectionnez l'optionConnection String et copiez un URI de connexion prêt à l'emploi que vous pouvez utiliser avec la syntaxe de chaîne de connexion décrite ci-dessus

  • Sélectionnez l'optionFlags et copiez une commanderedli prête à l'emploi que vous pouvez coller dans votre terminal pour établir la connexion

Ensuite, vous pouvez commencer à interagir avec votre instance Redis gérée. Pour plus d'informations sur la façon de travailler avec Redis, consultez notre série ou nos feuilles de triche surHow To Manage a Redis Database.

Conclusion

En tant que développement relativement nouveau dans les services de cloud computing, de nombreuses pratiques bien connues pour les bases de données autogérées ne sont pas largement ou complètement documentées pour les bases de données gérées par des fournisseurs de cloud. L'une des pratiques les plus fondamentales, l'accès à la base de données, peut ne pas être immédiatement clair pour ceux qui débutent dans l'utilisation de bases de données gérées. Notre objectif pour ce didacticiel est de vous aider à démarrer lorsque vous commencez à utiliser une base de données gérée pour stocker des données.

Pour plus d'informations sur l'utilisation des bases de données, nous vous encourageons à consulter notre variété dedatabase-related content, y compris des didacticiels axés directement surPostgreSQL,MySQL etRedis.

Pour en savoir plus sur les bases de données gérées DigitalOcean, veuillez consulter nosManaged Databases product documentation.