La base de données MySQL et la base de données PostgreSQL sont les deux principaux systèmes de gestion de bases de données relationnelles (SGBDR) open source, chacune offrant des avantages uniques. Dans l'article précédent, « Migration de MySQL vers PostgreSQL sur AWS RDS, partie 1 », nous avons discuté de certains des avantages de PostgreSQL par rapport à MySQL et présenté AWS Database Migration Service (DMS) pour effectuer une migration de MySQL vers PostgreSQL. Nous avons commencé par créer un utilisateur AWS IAM pour DMS. Dans ce tutoriel de continuation, nous allons créer des instances de bases de données MySQL et PostgreSQL sur RDS, et nous connecter à chacune. Ce didacticiel comporte les sections suivantes :
- Création d'instances AWS RDS pour une base de données MySQL et une base de données PostgreSQL
- Configuration de la connectivité entre les bases de données et le DMS
- Connexion à la base de données MySQL
- Connexion à une base de données PostgreSQL
- Conclusion
Création d'instances AWS RDS pour une base de données MySQL et une base de données PostgreSQL
Créez les bases de données source et cible, respectivement la base de données MySQL et la base de données PostgreSQL, sur AWS RDS. L'utilisation de RDS est abordée dans un didacticiel précédent. Pour la base de données source, la base de données MySQL, sélectionnez MySQL, comme illustré à la figure 1.
Figure 1 : Sélection de MySQL dans RDS
Sélectionnez Production ou Dév/Test option de déploiement, comme illustré à la figure 2. Cliquez sur Étape suivante.
Figure 2 : Sélection du type de déploiement
Spécifiez les détails de la base de données , dont la plupart ont des paramètres par défaut appropriés. Sélectionnez Classe d'instance de base de données (db.t2.micro ou db.t1.micro). Spécifiez un identificateur d'instance de base de données (MYSQLDB), qui ne doit pas être un mot réservé à la base de données MySQL tel que « MYSQL ». Spécifiez un nom d'utilisateur principal, un mot de passe principal (doit comporter au moins 8 caractères) et cliquez sur Étape suivante. Ensuite, configurez les Paramètres avancés . Pour VPC, sélectionnez Créer un nouveau VPC . Pour le groupe de sous-réseaux, sélectionnez Créer un nouveau groupe de sous-réseaux DB . Pour accessible au public , sélectionnez Oui . Pour la zone de disponibilité , sélectionnez Aucune préférence . Pour le groupe de sécurité VPC , sélectionnez Créer un nouveau groupe de sécurité. Spécifiez les options de base de données, y compris un nom de base de données (MYSQLDB), qui ne doit pas être un mot réservé tel que « MYSQL », et un port de base de données (3306). Conservez les paramètres par défaut pour la sauvegarde ; des sauvegardes automatiques sont nécessaires pour utiliser MySQL sur RDS en tant que source DMS. Conservez les paramètres par défaut pour la surveillance et la maintenance et cliquez sur Lancer l'instance DB . La base de données MySQL sur RDS est créée.
Pour une base de données PostgreSQL, sélectionnez le moteur de base de données RDS en tant que PostgreSQL , comme illustré à la figure 3.
Figure 3 : Sélection du moteur de base de données PostgreSQL
Sélectionnez le type de déploiement Dev/Test et cliquez sur Next Step. Spécifiez les détails de la base de données ; la plupart des paramètres par défaut conviennent. Spécifiez l'identifiant d'instance de base de données (postgresdb), le nom d'utilisateur principal, le mot de passe principal, puis cliquez sur Étape suivante. Ensuite, configurez les paramètres avancés, y compris les options de base de données pour le nom de la base de données (postgresdb), le port de la base de données (5432), puis cliquez sur Lancer l'instance DB. Une base de données PostgreSQL est lancée sur RDS. La base de données MySQL et la base de données PostgreSQL sur RDS sont illustrées à la figure 4.
Figure 4 : Base de données MySQL et PostgreSQL sur RDS
Configuration de la connectivité entre les bases de données et le DMS
Par défaut, le service de migration de base de données (DMS) n'est pas en mesure de se connecter aux instances de base de données RDS. Nous devons ajouter la connectivité aux groupes de sécurité pour l'instance de base de données RDS. Cliquez sur le groupe de sécurité lien dans Détails de la configuration pour l'instance de base de données MySQL RDS, comme illustré à la figure 5.
Figure 5 : Groupe de sécurité pour MySQL sur RDS
Dans la console du groupe de sécurité, sélectionnez l'onglet Entrant et cliquez sur Modifier (voir Figure 6).
Figure 6 : Groupe de sécurité>Modifier
Dans Modifier les règles de trafic entrant , sélectionnez Type comme Tout le trafic , Protocole comme Tous , Plage de ports comme 0-65535, Source comme N'importe où et cliquez sur Enregistrer , comme illustré à la figure 7.
Figure 7 : Configuration des règles entrantes pour autoriser tout le trafic
Les règles entrantes sont configurées pour autoriser tout le trafic, comme illustré à la figure 8.
Figure 8 : Entrant>Tout le trafic
Le sortant les règles doivent également être définies sur Tout le trafic, comme illustré à la figure 9, lorsque les règles entrantes sont configurées.
Figure 9 : Sortant>Tout le trafic
De même, cliquez sur le lien Groupe de sécurité pour l'instance de base de données PostgreSQL RDS, comme illustré à la figure 10, et configurez les règles entrantes/sortantes pour autoriser tout le trafic.
Figure 10 : Configuration du groupe de sécurité pour PostgreSQL pour autoriser tout le trafic
Connexion à la base de données MySQL
Lors de la migration d'une instance de base de données MySQL sur RDS, la base de données complète peut être migrée, ce qui inclut tous les schémas et tables, y compris les schémas et tables système. Dans cette section, nous allons nous connecter à la base de données MySQL sur RDS et accorder certains privilèges d'utilisateur au dvohra utilisateur. Pour vous connecter à la base de données MySQL, obtenez la base de données Endpoint à partir du tableau de bord RDS (voir Figure 11).
Figure 11 : Obtention du point de terminaison
Dans un shell de commande, exécutez la commande MySQL suivante à partir du répertoire bin de la base de données MySQL (C:Program FilesMySQLMySQL Server 5.7bin). Cela démarrera une session MySQL CLI.
mysql -h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com -u dvohra -p
Spécifiez le mot de passe dans Entrez le mot de passe : rapide. Le SQL> l'invite de commande s'affiche, comme illustré à la figure 12.
Figure 12 : Connexion à la base de données MySQL avec CLI
Ensuite, accordez des privilèges pour l'instance de base de données MySQL sur RDS à l'utilisateur DMS (dvohra).
GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON *.* TO 'dvohra'@'%';GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dvohra'@'%';Les privilèges de l'utilisateur sont définis, comme illustré à la figure 13.
Figure 13 : Ajout de privilèges utilisateurConnexion à une base de données PostgreSQL
Pour vous connecter à la base de données PostgreSQL sur RDS à partir d'un shell de commande, obtenez la base de données Endpoint depuis le tableau de bord RDS, comme illustré à la Figure 14.
Figure 14 : Obtention du point de terminaison de la base de données PostgreSQL sur RDSExécutez la commande suivante pour vous connecter à la base de données PostgreSQL et démarrer une interface de ligne de commande (CLI).
psql --host=postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=5432 --username dvohra --password --dbname=postgresdbL'interface de ligne de commande (CLI) de la base de données PostgreSQL démarre, comme illustré à la figure 15.
Figure 15 : Connexion à la base de données PostgreSQL sur RDS avec une CLILister les schémas avec le dn commande. Le schéma public est répertorié (voir Figure 16).
Figure 16 : Schémas de listeConclusion
Dans ce deuxième des quatre tutoriels sur la migration d'une instance de base de données MySQL sur RDS vers une instance de base de données Postgres sur RDS avec AWS DMS, nous avons créé des instances des deux bases de données sur RDS et connecté aux instances de base de données. Dans le prochain tutoriel, nous créerons une migration DMS.