MySQL-Datenbank und PostgreSQL-Datenbank sind die beiden führenden relationalen Open-Source-Datenbankverwaltungssysteme (RDBMS), die jeweils einige einzigartige Vorteile bieten. Im vorherigen Artikel „Migration von MySQL zu PostgreSQL auf AWS RDS, Teil 1“ haben wir einige der Vorteile von PostgreSQL gegenüber MySQL besprochen und AWS Database Migration Service (DMS) vorgestellt, um eine Migration von MySQL zu PostgreSQL durchzuführen. Wir begannen damit, einen AWS IAM-Benutzer für DMS zu erstellen. In diesem Fortsetzungstutorial erstellen wir Instanzen von MySQL- und PostgreSQL-Datenbanken auf RDS und stellen eine Verbindung zu jeder her. Dieses Tutorial hat die folgenden Abschnitte:
- Erstellen von AWS RDS-Instanzen für eine MySQL-Datenbank und eine PostgreSQL-Datenbank
- Konfigurieren der Konnektivität zwischen Datenbanken und dem DMS
- Verbindung zur MySQL-Datenbank herstellen
- Verbindung zu einer PostgreSQL-Datenbank herstellen
- Schlussfolgerung
Erstellen von AWS RDS-Instanzen für eine MySQL-Datenbank und eine PostgreSQL-Datenbank
Erstellen Sie die Quell- und Zieldatenbanken, die MySQL-Datenbank bzw. die PostgreSQL-Datenbank, auf AWS RDS. Die Verwendung von RDS wird in einem früheren Tutorial behandelt. Wählen Sie für die Quelldatenbank MySQL-Datenbank MySQL aus, wie in Abbildung 1 gezeigt.
Abbildung 1: Auswählen von MySQL in RDS
Wählen Sie die Produktion oder Entwicklung/Test aus Bereitstellungsoption, wie in Abbildung 2 gezeigt. Klicken Sie auf Nächster Schritt.
Abbildung 2: Bereitstellungstyp auswählen
Geben Sie DB-Details an , von denen die meisten über geeignete Standardeinstellungen verfügen. Wählen Sie die DB-Instance-Klasse (db.t2.micro oder db.t1.micro) aus. Geben Sie eine DB-Instanzkennung (MYSQLDB) an, die kein reserviertes Wort für die MySQL-Datenbank wie „MYSQL“ sein darf. Geben Sie einen Master-Benutzernamen und ein Master-Passwort (muss mindestens 8 Zeichen lang sein) an und klicken Sie auf „Nächster Schritt“. Konfigurieren Sie als Nächstes die Erweiterten Einstellungen . Wählen Sie für VPC Neue VPC erstellen aus . Wählen Sie für Subnetzgruppe die Option Neue DB-Subnetzgruppe erstellen aus . Für Öffentlich zugänglich , wählen Sie Ja aus . Für Verfügbarkeitszone , wählen Sie Keine Präferenz aus . Für VPC-Sicherheitsgruppe , wählen Sie Neue Sicherheitsgruppe erstellen aus. Geben Sie die Datenbankoptionen an, einschließlich eines Datenbanknamens (MYSQLDB), der kein reserviertes Wort wie „MYSQL“ sein darf, und des Datenbankports (3306). Behalten Sie die Standardeinstellungen für die Sicherung bei; Automatische Sicherungen sind erforderlich, um MySQL auf RDS als DMS-Quelle zu verwenden. Behalten Sie die Standardeinstellungen für Überwachung und Wartung bei und klicken Sie auf DB-Instanz starten . Die MySQL-Datenbank auf RDS wird erstellt.
Wählen Sie für eine PostgreSQL-Datenbank die RDS-Datenbank-Engine als PostgreSQL aus , wie in Abbildung 3 gezeigt.
Abbildung 3: PostgreSQL-Datenbankmodul auswählen
Wählen Sie den Dev/Test-Bereitstellungstyp aus und klicken Sie auf Next Step (Nächster Schritt). DB-Details angeben; Die meisten Standardeinstellungen sind geeignet. Geben Sie die DB-Instance-ID (postgresdb), den Master-Benutzernamen und das Master-Passwort an und klicken Sie auf Next Step (Nächster Schritt). Konfigurieren Sie als Nächstes erweiterte Einstellungen, einschließlich der Datenbankoptionen für Datenbankname (postgresdb), Datenbankport (5432), und klicken Sie auf DB-Instanz starten. Auf RDS wird eine PostgreSQL-Datenbank gestartet. Die MySQL-Datenbank und die PostgreSQL-Datenbank auf RDS sind in Abbildung 4 dargestellt.
Abbildung 4: MySQL- und PostgreSQL-Datenbank auf RDS
Konfigurieren der Konnektivität zwischen Datenbanken und dem DMS
Standardmäßig kann Database Migration Service (DMS) keine Verbindung mit RDS-DB-Instances herstellen. Wir müssen den Sicherheitsgruppen für die RDS-DB-Instance Konnektivität hinzufügen. Klicken Sie auf die Sicherheitsgruppe Link in Konfigurationsdetails für die MySQL-RDS-DB-Instance, wie in Abbildung 5 gezeigt.
Abbildung 5: Sicherheitsgruppe für MySQL auf RDS
Wählen Sie in der Sicherheitsgruppenkonsole die Registerkarte Eingehend aus und klicken Sie auf Bearbeiten (siehe Abbildung 6).
Abbildung 6: Sicherheitsgruppe>Bearbeiten
Unter Eingangsregeln bearbeiten , wählen Sie Typ aus als Gesamter Verkehr , Protokoll als Alle , Portbereich als 0-65535, Quelle als Überall und klicken Sie auf Speichern , wie in Abbildung 7 gezeigt.
Abbildung 7: Eingehende Regeln konfigurieren, um den gesamten Datenverkehr zuzulassen
Die eingehenden Regeln werden so konfiguriert, dass sie den gesamten Datenverkehr zulassen, wie in Abbildung 8 gezeigt.
Abbildung 8: Eingehend>Gesamter Datenverkehr
Der Ausgang Regeln sollten auch auf Gesamter Datenverkehr gesetzt werden, wie in Abbildung 9 gezeigt, wenn die Regeln für eingehenden Datenverkehr konfiguriert sind.
Abbildung 9: Ausgehend>Gesamter Datenverkehr
Klicken Sie in ähnlicher Weise auf den Link Sicherheitsgruppe für die PostgreSQL-RDS-DB-Instance, wie in Abbildung 10 gezeigt, und konfigurieren Sie eingehende/ausgehende Regeln, um den gesamten Datenverkehr zuzulassen.
Abbildung 10: Konfigurieren der Sicherheitsgruppe für PostgreSQL, um den gesamten Datenverkehr zuzulassen
Verbindung zur MySQL-Datenbank herstellen
Bei der Migration einer MySQL-Datenbankinstanz auf RDS kann die vollständige Datenbank migriert werden, einschließlich aller Schemas und Tabellen, einschließlich der Systemschemas und -tabellen. In diesem Abschnitt werden wir uns mit der MySQL-Datenbank auf RDS verbinden und der dvohra einige Benutzerrechte erteilen Benutzer. Um eine Verbindung zur MySQL-Datenbank herzustellen, rufen Sie den Endpoint der Datenbank ab aus dem RDS-Dashboard (siehe Abbildung 11).
Abbildung 11: Endpunkt abrufen
Führen Sie in einer Befehlsshell den folgenden MySQL-Befehl aus dem bin-Verzeichnis der MySQL-Datenbank (C:ProgrammeMySQLMySQL Server 5.7bin) aus. Dadurch wird eine MySQL-CLI-Sitzung gestartet.
mysql -h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com -u dvohra -p
Geben Sie das Passwort unter Passwort eingeben: an prompt. Der SQL> Die Eingabeaufforderung wird angezeigt, wie in Abbildung 12 gezeigt.
Abbildung 12: Verbindung zur MySQL-Datenbank mit CLI
Gewähren Sie als Nächstes dem DMS-Benutzer (dvohra) Berechtigungen für die MySQL-Datenbankinstanz auf RDS.
ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON *.* TO 'dvohra'@'%' GEWÄHREN; ALLE PRIVILEGIEN AUF awsdms_control.* TO 'dvohra'@'%' GEWÄHREN;Benutzerrechte werden festgelegt, wie in Abbildung 13 gezeigt.
Abbildung 13: Benutzerrechte hinzufügenVerbindung zu einer PostgreSQL-Datenbank herstellen
Um von einer Befehlsshell aus eine Verbindung zur PostgreSQL-Datenbank auf RDS herzustellen, rufen Sie den Endpoint der Datenbank ab aus dem RDS-Dashboard, wie in Abbildung 14 gezeigt.
Abbildung 14: Abrufen des PostgreSQL-Datenbankendpunkts auf RDSFühren Sie den folgenden Befehl aus, um eine Verbindung zur PostgreSQL-Datenbank herzustellen und eine Befehlszeilenschnittstelle (CLI) zu starten.
psql --host=postgresdb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com --port=5432 --username dvohra --password --dbname=postgresdbDie Befehlszeilenschnittstelle (CLI) der PostgreSQL-Datenbank wird gestartet, wie in Abbildung 15 gezeigt.
Abbildung 15: Herstellen einer Verbindung zur PostgreSQL-Datenbank auf RDS mit einer CLIListen Sie die Schemas mit dem dn auf Befehl. Das öffentliche Schema wird aufgelistet (siehe Abbildung 16).
Abbildung 16: Schemas auflistenSchlussfolgerung
In diesem zweiten von vier Tutorials zum Migrieren einer MySQL-Datenbankinstanz auf RDS zu einer Postgres-Datenbankinstanz auf RDS mit AWS DMS haben wir Instanzen der beiden Datenbanken auf RDS erstellt und eine Verbindung zu den Datenbankinstanzen hergestellt. Im nächsten Tutorial erstellen wir eine DMS-Migration.