MySQL in Amazon RDS - Amazon Relational Database Service

MySQL in Amazon RDS

Amazon RDS unterstützt DB-Instance für mehrere Versionen und Editionen von MySQL-Datenbank. Sie können die folgenden Major-Versionen verwenden:

  • MySQL 8.0

  • MySQL 5.7

  • MySQL 5.6

  • MySQL 5.5

Weitere Informationen über den Support für Minor-Versionen finden Sie unter MySQL in Amazon RDS-Versionen.

Zuerst verwenden Sie die Amazon RDS-Management-Tools oder Schnittstellen, um eine Amazon RDS-MySQL-DB-Instance zu erstellen. Anschließend können Sie die Größe der DB-Instance anpassen, Verbindungen zur DB-Instance autorisieren, Sicherungen oder Snapshots erstellen und mit deren Hilfe Wiederherstellungen durchführen, sekundäre Multi-AZs erstellen, Lesereplikate erstellen und die Leistung Ihrer DB-Instance überwachen. Sie verwenden Standard-MySQL-Hilfsprogramme und Anwendungen, um Daten in der DB-Instance zu speichern und darauf zuzugreifen.

Amazon RDS für MySQL ist konform zu vielen Industriestandards. Sie können beispielsweise Amazon RDS for MySQL-Datenbanken verwenden, um HIPAA-konforme Anwendungen zu erstellen und Gesundheitsinformationen, einschließlich geschützter Gesundheitsinformationen (PHI), unter einem mit AWS vereinbarten Business Associate Agreement (BAA) zu speichern. Amazon RDS for MySQL erfüllt auch die Sicherheitsanforderungen des Federal Risk and Authorization Management Program (FedRAMP, bundestaatliches Programm für Risiko- und Autorisierungsverwaltung) und hat eine FedRAMP Joint Authorization Board (JAB) Provisional Authority to Operate (P-ATO) bei der FedRAMP HIGH Baseline innerhalb der Region AWS GovCloud (US-West) erhalten. Weitere Informationen über unterstützte Compliance-Standards finden Sie unter AWS Cloud-Compliance.

Weitere Informationen zu den Funktionen in den einzelnen MySQL-Versionen finden Sie unter The Main Features of MySQL in der MySQL-Dokumentation.

Häufige Verwaltungsaufgaben für MySQL in Amazon RDS

Im Folgenden werden die Verwaltungsaufgaben genannt, die Sie mit einer Amazon RDS-MySQL-DB-Instance am häufigsten durchführen. Bei jeder Aufgabe sind Links zu relevanter Dokumentation enthalten.

Aufgabenbereich Relevante Dokumentation

Understanding Amazon RDS (Grundlagen von Amazon RDS)

Grundlegendes zu wichtigen Amazon RDS-Komponenten, einschließlich DB-Instances, AWS-Regionen, Availability Zones, Sicherheitsgruppen, Parametergruppen und Optionsgruppen.

Was ist Amazon Relational Database Service (Amazon RDS)?

Amazon RDS für die Erstanwendung einrichten

Richten Sie Amazon RDS so ein, dass sich MySQL-DB-Instances in Amazon Web Services (AWS) erstellen lassen.

Einrichten für Amazon RDS

Understanding Amazon RDS DB instances (Grundlagen von Amazon RDS-DB-Instances)

Erstellen Sie virtuelle MySQL Server-Instances, die in AWS ausgeführt werden. Da DB-Instances die Grundbausteine von Amazon RDS sind, sollte Sie ihre Funktionsweise verstehen.

Amazon RDS-DB-Instances

Creating a DB instance for production (Eine DB-Instance für die Produktion erstellen)

Erstellen einer DB-Instance für Produktionszwecke. Das Erstellen einer Instance schließt die Auswahl einer DB-Instance-Klasse mit angemessener Rechenleistung und Speicherkapazität und der Auswahl des Speichertyps, der den Zweck für die Verwendung Ihrer Datenbank erfüllt, mit ein.

DB-Instance-Klassen

Amazon RDS-Speichertypen

Erstellen einer Amazon RDS-DB-Instance

Managing security for your DB instance (Sicherheit für Ihre DB-Instance verwalten)

DB-Instances werden standardmäßig mit einer Firewall erstellt, die den Zugriff auf die Instance verhindert. Sie müssen eine Sicherheitsgruppe mit den korrekten IP-Adressen und Netzwerkkonfigurationen erstellen, um auf die DB-Instance zuzugreifen. Sie können auch AWS Identity and Access Management (IAM)-Richtlinien verwenden, um Berechtigungen zu erteilen, die bestimmen, wer RDS-Ressourcen verwalten darf.

Sicherheit in Amazon RDS

Verwalten des Zugriffs mit Richtlinien

Zugriffskontrolle mit Sicherheitsgruppen

Ermitteln der verwendeten Plattform: EC2-VPC oder EC2-Classic

Herstellen einer Verbindung mit einer DB-Instance

Verbinden Sie sich mit Ihrer DB-Instance mithilfe der Standard-SQL-Client-Anwendung, wie zum Beispiel dem Hilfsprogramm für MySQL-Eingabeaufforderung oder MySQL Workbench.

Verbinden mit einer DB-Instance auf einer MySQL-Datenbank-Engine

Configuring high availability for a production DB instance (Hohe Verfügbarkeit für eine Produktions-DB-Instance konfigurieren)

Sie können mithilfe von synchronen Standby-Replikationen hohe Verfügbarkeit in einer anderen Availability Zone, automatisches Failover, Fehlertoleranz für DB-Instances durch Verwendung von Multi-AZ-Bereitstellungen und Lesereplikate anbieten.

Hohe Verfügbarkeit (Multi-AZ) für Amazon RDS

Configuring a DB instance in an Amazon Virtual Private Cloud (DB-Instance in einer Amazon Virtual Private Cloud konfigurieren)

Konfigurieren einer Virtual Private Cloud (VPC) im Amazon VPC-Service. Eine Amazon VPC ist ein virtuelles Netzwerk, das von anderen virtuellen Netzwerken in AWS logisch isoliert ist.

Ermitteln der verwendeten Plattform: EC2-VPC oder EC2-Classic

Arbeiten mit einer DB-Instance in einer VPC

Configuring specific MySQL database parameters and features (Spezifische MySQL-Datenbank-Parameter und -Funktionen konfigurieren)

Konfigurieren Sie spezifische MySQL-Datenbank-Parameter mit einer Parametergruppe, die vielen DB-Instances zugeordnet werden kann. Sie können auch spezifische MySQL-Datenbankfunktionen mithilfe einer Optionsgruppe konfigurieren, die vielen DB-Instances zugewiesen werden kann.

Arbeiten mit DB-Parametergruppen

Arbeiten mit Optionsgruppen

Optionen für MySQL-DB-Instances

Modifying a DB instance running the MySQL database engine (DB-Instance ändern, auf der die MySQL-Datenbank-Engine ausgeführt wird)

Ändern Sie die Einstellungen einer DB-Instance, um Aufgaben, wie zum Beispiel das Hinzufügen von zusätzlichem Speicher oder das Ändern der DB-Instance-Klasse, abschließen zu können.

Ändern einer Amazon RDS-DB-Instance

Configuring database backup and restore (Datenbank-Backups und -Wiederherstellung konfigurieren)

Konfigurieren Sie Ihre DB-Instance, um automatisierte Backups durchzuführen. Sie können Ihre Datenbanken mithilfe von vollständigen Sicherungsdateien auch manuell sichern oder wiederherstellen.

Arbeiten mit Sicherungen

Sichern und Wiederherstellen einer Amazon RDS-DB-Instance

Importing and exporting data (Daten importieren und exportieren)

Importieren Sie Daten von anderen RDS-MySQL-DB-Instances, MySQL-Instances, die außerhalb von Amazon RDS ausgeführt werden, und anderen Datenquelltypen, und exportieren Sie Daten in MySQL-Instances, die außerhalb von Amazon RDS ausgeführt werden.

Wiederherstellen einer Sicherung in einer Amazon RDS MySQL-DB-Instance

Monitoring a MySQL DB instance (MySQL-DB-Instance überwachen)

Überwachen Sie Ihre RDS-MySQL-DB-Instance mithilfe von Amazon CloudWatch-RDS-Metriken, -Ereignissen und erweiterter Überwachung. Sehen Sie sich Protokolldateien für Ihre RDS-MySQL-DB-Instance an.

Überwachung einer Amazon RDS-DB-Instance

Anzeigen von DB-Instance-Metriken

Anzeigen von Amazon RDS-Ereignissen

Amazon RDS Datenbank-Protokolldateien

MySQL-Datenbank-Protokolldateien

Replicating your data (Replikation Ihrer Daten)

Erstellen Sie ein MySQL-Lesereplikat in derselben oder einer anderen AWS-Region. Lesereplikate können für Lastausgleich, Notfallwiederherstellung und Verarbeitung von leseintensiven Datenbank-Workloads, beispielsweise für Analysen oder Berichte, verwendet werden.

Arbeiten mit Read Replicas

Replizieren mit einer MySQL oder MariaDB-Instance, die außerhalb von Amazon RDS ausgeführt wird

In verschiedenen Abschnitten finden Sie nützliche Informationen für das Arbeiten mit Amazon RDS MySQL-DB-Instances:

MySQL in Amazon RDS-Versionen

Bei MySQL sind Versionsnummern im Format „Version = X.Y.Z.“ angeordnet. In der Amazon RDS-Terminologie bezeichnet X.Y die Hauptversion und Z ist die Nummer der Unterversion. Bei Amazon RDS-Implementierungen gilt ein Versionswechsel als wesentlich, wenn sich die Hauptversionsnummer ändert – z. B. von Version 5.6 auf 5.7. Ein Versionswechsel gilt als unwesentlich, wenn sich nur die Unterversionsnummer ändert – z. B. von Version 5.7.16 auf 5.7.21.

Amazon RDS unterstützt derzeit die folgenden MySQL-Versionen:

Major Version Minor Version

MySQL 8.0

  • 8.0.20

  • 8.0.19

  • 8.0.17

  • 8.0.16

  • 8.0.15

  • 8.0.13

  • 8.0.11

MySQL 5.7

  • 5.7.30

  • 5.7.28

  • 5.7.26

  • 5.7.25

  • 5.7.24

  • 5.7.23

  • 5.7.22

  • 5.7.21

  • 5.7.19

  • 5.7.17

  • 5.7.16

MySQL 5.6

  • 5.6.48

  • 5.6.46

  • 5.6.44

  • 5.6.43

  • 5.6.41

  • 5.6.40

  • 5.6.39

  • 5.6.37

  • 5.6.35

  • 5.6.34

MySQL 5.5

  • 5.5.61

  • 5.5.59

  • 5.5.57

  • 5.5.54

  • 5.5.53

  • 5.5.46

Sie können eine beliebige aktuell unterstützte MySQL-Version festlegen, wenn Sie eine DB-Instance erstellen. Sie können die Hauptversionen (wie z. B. MySQL 5.7) sowie eine beliebige unterstützte Unterversion für die festgelegte Hauptversion festlegen. Wenn keine Version angegeben wird, verwendet Amazon RDS standardmäßig eine unterstützte Version - in der Regel die aktuelle Version. Wenn die Hauptversion, jedoch nicht die Unterversion, festgelegt ist, verwendet Amazon RDS standardmäßig den letzten Release der Hauptversion, die Sie festgelegt haben. Eine Liste aller unterstützten Versionen sowie der Standardversionen für neu erstellte DB-Instances können Sie mit dem AWS CLI-Befehl describe-db-engine-versions aufrufen.

Die standardmäßige MySQL-Version kann je nach AWS-Region variieren. Um eine DB-Instance mit einer bestimmten Unterversion zu erstellen, geben Sie die Unterversion bei der Erstellung der DB-Instance an. Sie können die Standard-Unterversion für eine AWS-Region mithilfe des folgenden AWS CLI-Befehls ermitteln:

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

Ersetzen Sie major-engine-version durch die Engine-Hauptversion, und ersetzen Sie region durch die AWS-Region. Der folgende AWS CLI-Befehl gibt beispielsweise die standardmäßige MySQL-Engine-Unterversion für die Hauptversion 5.7 und die USA West (Oregon)-AWS-Region (us-west-2) zurück:

aws rds describe-db-engine-versions --default-only --engine mysql --engine-version 5.7 --region us-west-2 --query '*[].{Engine:Engine,EngineVersion:EngineVersion}' --output text

Mit Amazon RDS können Sie steuern, wann Ihre MySQL-Instance auf eine neue Amazon RDS-unterstützte Hauptversion aktualisiert wird. Sie können die Kompatibilität mit bestimmten MySQL-Versionen aufrechterhalten, neue Versionen mit Ihrer Anwendung testen, bevor Sie diese für die Produktion bereitstellen, und Hauptversions-Upgrades zu ausgewählten Zeiten durchführen lassen.

Wenn das automatische Upgrade der Nebenversion aktiviert ist, wird Ihre DB-Instance automatisch auf neue MySQL-Nebenversionen aktualisiert, da diese von Amazon RDS unterstützt werden. Dieser Patch tritt während Ihres geplanten Wartungsfensters auf. Sie können eine DB-Instance ändern, um automatische Upgrades der Nebenversion zu aktivieren oder zu deaktivieren.

Wenn Sie sich von automatisch geplanten Upgrades abmelden, können Sie ein manuelles Upgrade auf eine der unterstützten Unterversionen durchführen, indem Sie die selben Schritte befolgen, wie bei einem Update auf eine Hauptversion. Weitere Informationen finden Sie unter Upgraden der Engine-Version für eine DB-Instance .

Amazon RDS unterstützt derzeit die Hauptversionsaktualisierung von MySQL Version 5.5 auf Version 5.6, von MySQL Version 5.6 auf Version 5.7 und von MySQL Version 5.7 auf Version 8.0. Da Hauptversionsaktualisierungen Kompatibilitätsrisiken bergen, werden sie nicht automatisch ausgeführt. Sie müssen für das Ändern der DB-Instance eine Anfrage stellen. Sie sollten alle Upgrades gründlich testen, bevor Sie Ihre Produktions-Instances aktualisieren. Weitere Informationen über das Upgraden einer MySQL-DB-Instance finden Sie unter Upgrade der MySQL DB-Engine.

Sie können vor dem Aktualisieren eine DB-Instance gegen eine neue Version testen, indem Sie einen DB-Snapshot Ihrer bestehenden DB-Instance erstellen, von diesem DB-Snapshot eine neue DB-Instance wiederherstellen und dann eine Versions-Upgrade für die neue DB-Instance durchführen. Sie können dann sicher mit dem aktualisierten Klon Ihrer DB-Instance experimentieren, bevor Sie entscheiden, Ihre originale DB-Instance zu aktualisieren.

Weitere Informationen zur Amazon RDS-Veralterungsrichtlinie für MySQL finden Sie unter Häufig gestellte Fragen zu Amazon RDS.

MySQL-Funktionen, die nicht von Amazon RDS unterstützt werden

Amazon RDS bietet zurzeit keine Unterstützung für die folgenden MySQL-Funktionen:

  • Authentifizierungs-Plugin

  • Fehlerprotokollierung im Systemprotokoll

  • Plugin für die Gruppenreplikation

  • InnoDB-Tablespace-Verschlüsselung

  • MariaDB-Audit-Plugin (nur für Amazon RDS MySQL-Version 8.0 nicht unterstützt)

    Für Amazon RDS MySQL-Version 5.5, 5.6 und 5.7 wird das MariaDB-Audit-Plugin unterstützt.

  • Passwortstärke-Plugin

  • Persistente Systemvariablen

  • Replikationsfilter

  • Semi-synchrone Replikation

  • Transportierbarer Tablespace

  • X-Plugin

Anmerkung

Globale Transaktions-IDs werden für MySQL Version 5.7.23 und höhere Versionen von MySQL 5.7 unterstützt. Für Amazon RDS MySQL 5.5, 5.6 oder 8.0 werden globale Transaktions-IDs nicht unterstützt.

Die IAM-Datenbankauthentifizierung wird für MySQL 5.6 und 5.7 unterstützt. Für MySQL 5.5 oder 8.0 wird die IAM-Datenbankauthentifizierung nicht unterstützt.

Amazon RDS-Performance-Insights wird für MySQL 5.6, 5.7 und 8.0 unterstützt. Für MySQL 5.5 wird Amazon RDS-Performance-Insights nicht unterstützt.

Um eine verwaltete Service-Erfahrung zu bieten, ermöglicht Amazon RDS keinen Shell-Zugriff auf DB-Instances. Außerdem wird der Zugriff auf bestimmte Systemprozeduren und -tabellen beschränkt, die erweiterte Berechtigungen erfordern. Amazon RDS unterstützt den Zugriff auf Datenbanken in einer DB-Instance mit jeder beliebigen Standard-SQL-Client-Anwendung. Amazon RDS erlaubt keinen direkten Hostzugriff auf eine DB-Instance über Telnet, Secure Shell (SSH) oder Windows Remote Desktop Connection. Wenn Sie eine DB-Instance erstellen, wird Ihnen die db_owner-Rolle für alle Datenbanken in dieser Instance zugewiesen und Sie erhalten die Berechtigungen für alle Datenbankebenen, außer für jene, die für Sicherungen verwendet werden. Amazon RDS verwaltet Sicherungen für Sie.

Unterstützte Speicher-Engines für MySQL in Amazon RDS

MySQL unterstützt zwar mehrere Speicher-Engines mit unterschiedlichen Fähigkeiten und Kapazitäten, jedoch sind nicht alle von ihnen für die Wiederherstellung und für Datenbeständigkeit optimiert. Amazon RDS bietet vollständige Unterstützung für die InnoDB-Speicher-Engine für MySQL-DB-Instances. Amazon RDS-Funktionen wie beispielsweise zeitbezogene Wiederherstellung und Snapshot-Wiederherstellung setzen eine wiederherstellbare Speicher-Engine voraus und werden nur für die InnoDB-Speicher-Engine unterstützt. Sie müssen eine Instance von MySQL 5.6 oder neuer ausführen, um die InnoDB-Schnittstelle memcached zu verwenden. Weitere Informationen finden Sie unter Unterstützung für MySQL-Memcached.

Die verbündete Speicher-Engine wird aktuell von Amazon RDS für MySQL nicht unterstützt.

Für von Benutzern erstellten Schemas unterstützt die MyISAM-Speicher-Engine keine verlässliche Wiederherstellung, was zu Datenverlust oder -schädigung führen kann, wenn MySQL nach einer Wiederherstellung neugestartet wird, wodurch die zeitpunktbezogene Wiederherstellung und die Snapshot-Wiederherstellung nicht ordnungsgemäß funktionieren könnten. Wenn Sie trotzdem MyISAM mit Amazon RDS-Snapshots verwenden möchten, kann dies unter Umständen hilfreich sein.

Anmerkung

Systemtabellen im mysql-Schema können sich im MyISAM-Speicher befinden.

Wenn Sie vorhandene MyISAM-Tabellen in InnoDB-Tabellen konvertieren möchten, können Sie den Befehl ALTER TABLE verwenden (z. B. alter table TABLE_NAME engine=innodb;). Vergessen Sie nicht, dass MyISAM und InnoDB verschiedene Stärken und Schwächen haben, also sollten Sie eine vollständige Bewertung der Auswirkungen vornehmen, bevor Sie Ihre Anwendungen umstellen.

MySQL 5.1 wird nicht mehr von Amazon RDS unterstützt. Sie können jedoch bei Bedarf bestehende MySQL 5.1-Snapshots wiederherstellen. Wenn Sie einen MySQL-5.1-Snapshot wiederherstellen, wird die Instance automatisch auf MySQL 5.5 aktualisiert.

MySQL-Sicherheit in Amazon RDS

Sicherheit für Amazon RDS-MySQL-DB-Instances wird auf drei Ebenen verwaltet:

  • AWS Identity and Access Management kontrolliert, wer Amazon RDS Management-Aktionen bei DB-Instances ausführen kann. Wenn Sie sich in AWS mit den IAM-Anmeldeinformationen anmelden, muss Ihr IAM-Konto über die IAM-Zugriffsrichtlinien verfügen, die erforderlichen Berechtigungen für das Durchführen von Amazon RDS-Verwaltungsvorgängen erteilen. Weitere Informationen finden Sie unter Identitäts- und Zugriffsverwaltung in Amazon RDS.

  • Beim Erstellen einer DB-Instance verwenden Sie entweder eine VPC-Sicherheitsgruppe oder eine DB-Sicherheitsgruppe, um zu steuern, welche Geräte und Amazon EC2-Instances Verbindungen zum Endpunkt und Port der DB-INstance öffnen können. Diese Verbindungen können über Secure Sockets Layer (SSL) erfolgen. Zusätzlich können Firewall-Regeln in Ihrem Unternehmen steuern, ob Geräte in Ihrem Unternehmen bestehende Verbindungen zur DB-Instance öffnen können.

  • Sie können eine der folgenden Anweisungen oder eine Kombination davon befolgen, um die Anmeldung und die Berechtigungen für eine MySQL-DB-Instance zu bestätigen.

    Sie können denselben Ansatz wie mit einer eigenständigen Instance in MySQL auswählen. Befehle wie CREATE USER, RENAME USER, GRANT, REVOKE und SET PASSWORD funktionieren genau wie auf lokalen Datenbanken, so wie auch das direkte Ändern von Datenbank-Schema-Tabellen. Weitere Informationen finden Sie unter Access Control and Account Management in der MySQL-Dokumentation.

    Sie können auch die IAM-Datenbank-Authentifizierung verwenden. Mit IAM-Datenbank-Authentifizierung, können Sie mithilfe eines IAM-Benutzers, einer IAM-Rolle oder eines Authentifizierungstokens Ihre DB-Instance bestätigen. Ein Authentifizierungstoken ist ein eindeutiger Wert, der mithilfe des Signatur-Version 4-Signiervorgangs erstellt wird. Durch das Verwenden der IAM-Datenbank-Authentifizierung können Sie dieselben Anmeldeinformationen verwenden, um den Zugang zu Ihren AWS-Ressourcen und Ihrer Datenbank zu steuern. Weitere Informationen finden Sie unter IAM-Datenbankauthentifizierung für MySQL und PostgreSQL.

Wenn Sie eine Amazon RDS DB-Instance erstellen, hat der Master-Benutzer standardmäßig folgende Berechtigungen:

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • replication client

  • replication slave (MySQL 5.6 and later)

  • select

  • show databases

  • show view

  • trigger

  • update

Anmerkung

Obwohl es möglich ist, den Masterbenutzer in der DB-Instance zu löschen, wird dies nicht empfohlen. Um den Masterbenutzer neu zu erstellen, verwenden Sie die RDS-API-Operation ModifyDBInstance oder den AWS CLI-Befehl modify-db-instance und geben mit dem vorgesehenen Parameter ein neues Masterbenutzerpasswort an. Wenn der Masterbenutzer nicht bereits in der Instance vorhanden ist, wird der Masterbenutzer mit dem angegebenen Passwort erstellt.

Um Verwaltungsdienste für jede DB-Instance bereitzustellen, wird der rdsadmin-Benutzer erstellt, wenn die DB-Instance erstellt wird. Der Versuch, das Passwort zu verwerfen, umzubenennen oder zu ändern, oder die Sonderrechte für das rdsadmin-Konto zu ändern, wird fehlschlagen.

Um die Verwaltung der DB-Instance zu erlauben, wurden die Befehle kill und kill_query beschränkt. Die Amazon RDS-Befehle rds_kill und rds_kill_query werden bereitgestellt, um Ihnen das Beenden von Benutzersitzungen oder Abfragen in DB-Instances zu ermöglichen.

Verwenden des Plugin für die Passwortvalidierung

MySQLstellt das validate_password-Plugin für eine verbesserte Sicherheit bereit. Das Plugin erzwingt Passwortrichtlinien durch Verwendung von Parametern in der DB-Parametergruppe für Ihre MySQL-DB-Instance. Das Plugin wird für DB-Instances unterstützt, die die MySQL-Versionen 5.6, 5.7 und 8.0 ausführen. Weitere Informationen zum validate_password-Plugin finden Sie unter The Password Validation Plugin in der MySQL-Dokumentation.

So aktivieren Sie das validate_password-Plugin für eine MySQL-DB-Instance

  1. Stellen Sie eine Verbindung zu Ihrer Instance her und führen Sie den folgenden Befehl aus:

    INSTALL PLUGIN validate_password SONAME 'validate_password.so';
  2. Konfigurieren Sie die Parameter für das Plugin in der DB-Parametergruppe, die von der DB-Instance verwendet wird.

    Weitere Informationen zu den Parametern finden Sie unter Password Validation Plugin Options and Variables in der MySQL-Dokumentation.

    Weitere Informationen zum Ändern von DB-Instance-Parametern finden Sie unter Ändern von Parametern in einer DB-Parametergruppe.

Nach dem Installieren und Aktivieren des password_validate-Plugin setzen Sie vorhandene Passwörter zurück, um den neuen Validierungsrichtlinien zu entsprechen.

Amazon RDS validiert keine Passwörter. Die MySQL-DB-Instance führt die Passwortvalidierung durch. Wenn Sie ein Benutzerpasswort mit der AWS Management Console, dem modify-db-instance-Befehl, der AWS CLI oder der RDS-API-Opperation ModifyDBInstance festlegen, ist die Änderung möglicherweise auch dann erfolgreich, wenn das neue Passwort nicht mit Ihren Passwortrichtlinien übereinstimmt. Ein neues Passwort wird jedoch nur dann in der MySQL-DB-Instance festgelegt, wenn es den Passwortrichtlinien entspricht. In diesem Fall zeichnet Amazon RDS das folgende Ereignis auf.

"RDS-EVENT-0067" - An attempt to reset the master password for the DB instance has failed.

Weitere Informationen über Amazon RDS-Ereignisse finden Sie unter Verwenden von Amazon RDS-Ereignisbenachrichtigungen.

Verwenden von SSL mit einer MySQL DB-Instance

Amazon RDS unterstützt Secure Sockets Layer (SSL)-Verbindungen mit DB-Instances, die MySQL-Datenbank-Engine ausführen.

Amazon RDS erstellt ein SSL-Zertifikat und installiert das Zertifikat auf der DB-Instance, wenn Amazon RDS die Instance bereitstellt. Diese Zertifikate werden von einer Zertifizierungsstelle signiert. Das SSL-Zertifikat enthält den DB-Instance-Endpunkt als allgemeinen Name (Common Name CN) für das SSL-Zertifikat, um gegen Spoofing-Angriffe zu schützen.

Ein SSL-Zertifikat, das von Amazon RDS erstellt wurde, ist die vertrauenswürdige Root Entity und sollte in den meisten Fällen funktionieren, könnte jedoch fehlschlagen, wenn Ihre Anwendung keine Zertifikatsketten akzeptiert. Wenn Ihre Anwendung keine Zertifikatsketten akzeptiert, müssen Sie evtl. ein Zwischenzertifikat verwenden, um sich mit Ihrer AWS-Region zu verbinden. Beispielsweise müssen Sie ein Zwischenzertifikat verwenden, um sich mithilfe von SSL mit der Region AWS GovCloud (US-West) zu verbinden.

Informationen zum Herunterladen von Zertifikaten finden Sie unter Verwenden von SSL/TLS für die Verschlüsselung einer Verbindung zu einer DB-Instance. Weitere Informationen über die Verwendung von SSL mit MySQL finden Sie unter Aktualisieren von Anwendungen, um Verbindungen mit MySQL-DB-Instances mithilfe neuer SSL/TLS-Zertifikate herzustellen.

MySQL verwendet yaSSL für sichere Verbindungen in folgenden Versionen:

  • MySQL Version 5.7.19 und frühere 5.7-Versionen

  • MySQL Version 5.6.37 und frühere 5.6-Versionen

  • MySQL Version 5.5.57 und frühere 5.5-Versionen

MySQL verwendet OpenSSL für sichere Verbindungen in folgenden Versionen:

  • MySQL-Version 8.0

  • MySQL Version 5.7.21 und höhere 5.7-Versionen

  • MySQL Version 5.6.39 und höhere 5.6-Versionen

  • MySQL Version 5.5.59 und höhere 5.5-Versionen

Amazon RDS for MySQL unterstützt Transport Layer Security (TLS) Version 1.0, 1.1 und 1.2. In der folgenden Tabelle ist dargestellt, welche TLS-Versionen für die MySQL-Versionen unterstützt werden.

MySQL-Version TLS 1.0 TLS 1.1 TLS 1.2

MySQL 8.0

Unterstützt

Unterstützt

Unterstützt

MySQL 5.7

Unterstützt

Unterstützt

Unterstützt für MySQL 5.7.21 und höher

MySQL 5.6

Unterstützt

Unterstützt für MySQL 5.6.46 und höher

Unterstützt für MySQL 5.6.46 und höher

MySQL 5.5

Unterstützt

Nicht unterstützt

Nicht unterstützt

Um Verbindungen mithilfe des standardmäßigen mysql-Clients zu verschlüsseln, starten Sie den Client mit dem Parameter --ssl-ca, um auf den öffentlichen Schlüssel zu verweisen, wie in den folgenden Beispielen dargestellt.

Im folgenden Beispiel sehen Sie für MySQL 5.7 und höher, wie der Client mit dem Parameter --ssl-ca gestartet wird.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-mode=VERIFY_IDENTITY

Im folgenden Beispiel sehen Sie für MySQL 5.6 und früher, wie der Client mit dem Parameter --ssl-ca gestartet wird.

mysql -h myinstance.c9akciq32.rds-us-east-1.amazonaws.com --ssl-ca=[full path]rds-combined-ca-bundle.pem --ssl-verify-server-cert

Sie können SSL-Verbindungen für bestimmte Benutzerkonten anfordern. Verwenden Sie beispielsweise eine der folgenden Anweisungen – abhängig von Ihrer MySQL-Version – um SSL-Verbindungen für das Benutzerkonto encrypted_user anzufordern.

Verwenden Sie für MySQL 5.7 und höher die folgende Anweisung.

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

Verwenden Sie für MySQL 5.6 und früher die folgende Anweisung.

GRANT USAGE ON *.* TO 'encrypted_user'@'%' REQUIRE SSL;

Weitere Informationen zu SSL-Verbindungen mit MySQL finden Sie unter Using Encrypted Connections in der MySQL-Dokumentation.

Verwenden von memcached und anderen Optionen mit MySQL

Die meisten Amazon RDS-DB-Engines unterstützen Optionsgruppen, die Ihnen ermöglichen, zusätzliche Funktionen für Ihre DB-Instance auszuwählen. DB-Instances in MySQL-Version 5.6 und neuer unterstützen die Option memcached, einen einfachen schlüsselbasierten Cache. Weitere Informationen über memcached und andere Optionen finden Sie unter Optionen für MySQL-DB-Instances. Weitere Informationen über das Arbeiten mit Optionsgruppen finden Sie unter Arbeiten mit Optionsgruppen.

InnoDB-Cache-Warnung

Die InnoDB-Cache-Warnung kann zu Leistungssteigerungen Ihrer MySQL-DB-Instance führen, indem der aktuelle Zustand des Bufferpools gespeichert wird, wenn die DB-Instance heruntergefahren wird, und beim Hochfahren der DB-Instance der Bufferpool erneut aus den gespeicherten Informationen geladen wird. Dies überbrückt die ansonsten notwendige "Aufwärmphase" des Bufferpools bei normaler Verwendung von Datenbanken und lädt den Bufferpool vorab mit den Seiten für bereits bekannte Anfragen. Die Datei, die den gespeicherten Bufferpool abspeichert, speichert nur Metadaten für die Seite ab, die sich in dem Bufferpool befinden, nicht die Seiten selbst. Dadurch benötigt die Datei nur wenig Speicherplatz. Die Dateigröße beträgt nur 0,2 % der Cachegröße. So beträgt beispielsweise bei einem 64 GiB großen Cache die Größe der Cache-Initialisierungsdatei 128 MiB. Weitere Informationen zur InnoDB-Cache-Initialisierung finden Sie unter Saving and Restoring the Buffer Pool State in der MySQL-Dokumentation.

MySQL in Amazon RDS unterstützt InnoDB-Cache-Initialisierung für MySQL-Version 5.6 und neuer. Um InnoDB-Cache-Initialisierung zu aktivieren, setzen Sie die Parameter innodb_buffer_pool_dump_at_shutdown und innodb_buffer_pool_load_at_startup in der Parametergruppe für Ihre DB-Instance auf 1. Die Änderung dieser Parameterwerte in einer Parametergruppe wirkt sich auf alle MySQL-DB-Instances aus, die diese Parametergruppe verwenden. Sie müssen möglicherweise eine neue Parametergruppe für diese Instances erstellen, um InnoDB-Cache-Initialisierung für bestimmte MySQL-DB-Instances zu aktivieren. Weitere Informationen zu Parametergruppen finden Sie unter Arbeiten mit DB-Parametergruppen.

InnoDB-Cache-Initialisierung bringt vor allem einen Leistungsvorteil für DB-Instances, die den Standardspeicher verwenden. Wenn Sie PIOPS-Speicher verwenden, findet in der Regel keine signifikante Leistungssteigerung statt.

Wichtig

Wenn Ihre MySQL-DB-Instance nicht ordnungsgemäß herunterfährt, wie beispielsweise während eines Failovers, dann wird der Bufferpool nicht auf der Festplatte gespeichert. In diesem Fall lädt MySQL eine verfügbare Bufferpool-Datei, wenn die DB-Instance neu gestartet wurde. Das ist nicht schlimm, aber der wiederhergestellte Zwischenspeicher-Pool spiegelt möglicherweise nicht den aktuellsten Stand des Zwischenspeicher-Pools vor dem Neustart dar. Wir empfehlen Ihnen, Ihren Bufferpool in regelmäßigen Abschnitten in Ihrem Interesse zu verwerfen, um sicherzustellen, dass Sie immer den aktuellsten Zustand in Ihrem Bufferpool für die Initialisierung des Cache beim Starten von InnoDB haben. Sie können den Bufferpool bei Bedarf verwerfen oder laden, wenn Ihre DB-Instance MySQL-Version 5.6.19 oder neuer ausgeführt.

Sie können ein Ereignis erstellen, das den Bufferpool in regelmäßigen Abständen automatisch verwirft. Beispielsweise erstellt das folgende Statement ein Ereignis mit dem Namen periodic_buffer_pool_dump, das den Bufferpool stündlich verwirft.

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

Weitere Informationen zu MySQL-Ereignissen finden Sie unter Event Syntax in der MySQL-Dokumentation.

Entladen und Laden des Zwischenspeicher-Pools auf Abruf

In MySQL-Version 5.6.19 oder neuer können Sie den InnoDB-Cache nach Bedarf speichern und laden.

Lokale Zeitzone für MySQL-DB-Instances

Standardmäßig ist die Zeitzone für eine RDS-MySQL-DB-Instance auf die koordinierte Weltzeit (UTC) eingestellt. Sie können die Zeitzone für Ihre DB-Instance auf die lokale Zeitzone für Ihre Anwendung einstellen.

Setzen Sie den Parameter time_zone in der Parametergruppe für Ihre DB-Instance auf einen der unterstützten Werte, die weiter unten in diesem Abschnitt gelistet sind. Wenn Sie den Parameter time_zone für eine Parametergruppe setzen, wird bei allen DB-Instances und Lesereplikaten, die diese Parametergruppe verwenden, die neue lokale Zeitzone eingestellt. Weitere Informationen zum Einstellen von Parametern in einer Parametergruppe finden Sie unter Arbeiten mit DB-Parametergruppen.

Nachdem Sie die lokale Zeitzone eingestellt haben, werden alle neuen Verbindungen zur Datenbank die Änderung reflektieren. Wenn Sie keine offenen Verbindungen zu Ihrer Datenbank haben, wenn Sie die lokale Zeitzone ändern, sehen Sie die lokale Zeitzonenaktualisierung nicht, nachdem Sie die Verbindung schließen und eine neue Verbindung öffnen.

Sie können eine andere lokale Zeitzone für eine DB-Instance sowie ein oder mehrere ihrer Lesereplikate einstellen. Verwenden Sie eine andere Parametergruppe für die DB-Instance und das/die Replica/s und stellen Sie den Parameter time_zone in jeder Parametergruppe auf eine andere lokale Zeit ein.

Wenn Sie über AWS-Regionen hinweg replizieren, verwenden die DB-Quell-Instance und das Lesereplikat unterschiedliche Parametergruppen (Parametergruppen sind eindeutig für eine AWS-Region). Sie müssen den Parameter time_zone in der Parametergruppe der Instance und des Lesereplikats einstellen, um dieselbe lokale Zeitzone für jede Instance zu verwenden.

Wenn Sie eine DB-Instance von einem DB-Snapshot wiederherstellen, wird die lokale Zeitzone auf UTC eingestellt. Sie können die Zeitzone auf Ihre lokale Zeitzone einstellen, nachdem die Wiederherstellung abgeschlossen ist. Wenn Sie die DB-Instance auf einen Zeitpunkt wiederherstellen, ist die lokale Zeitzone für die wiederhergestellte DB-Instance die Zeitzoneneinstellung von der Parametergruppe für die wiederhergestellte DB-Instance.

Sie können Ihre lokale Zeitzone auf die folgenden Werte einstellen.

Africa/Cairo

Asia/Bangkok

Australia/Darwin

Africa/Casablanca

Asia/Beirut

Australia/Hobart

Africa/Harare

Asia/Calcutta

Australia/Perth

Africa/Monrovia

Asia/Damascus

Australia/Sydney

Africa/Nairobi

Asia/Dhaka

Brazil/East

Africa/Tripoli

Asia/Irkutsk

Canada/Newfoundland

Africa/Windhoek

Asia/Jerusalem

Canada/Saskatchewan

America/Araguaina

Asia/Kabul

Europe/Amsterdam

America/Asuncion

Asia/Karachi

Europe/Athens

America/Bogota

Asia/Kathmandu

Europe/Dublin

America/Caracas

Asia/Krasnoyarsk

Europe/Helsinki

America/Chihuahua

Asia/Magadan

Europe/Istanbul

America/Cuiaba

Asia/Muscat

Europe/Kaliningrad

America/Denver

Asia/Novosibirsk

Europe/Moscow

America/Fortaleza

Asia/Riyadh

Europe/Paris

America/Guatemala

Asia/Seoul

Europe/Prague

America/Halifax

Asia/Shanghai

Europe/Sarajevo

America/Manaus

Asia/Singapore

Pacific/Auckland

America/Matamoros

Asia/Taipei

Pacific/Fiji

America/Monterrey

Asia/Tehran

Pacific/Guam

America/Montevideo

Asia/Tokyo

Pacific/Honolulu

America/Phoenix

Asia/Ulaanbaatar

Pacific/Samoa

America/Santiago

Asia/Vladivostok

US/Alaska

America/Tijuana

Asia/Yakutsk

US/Central

Asia/Amman

Asia/Yerevan

US/Eastern

Asia/Ashgabat

Atlantic/Azores

US/East-Indiana

Asia/Baghdad

Australia/Adelaide

US/Pacific

Asia/Baku

Australia/Brisbane

UTC

Bekannte Probleme und Einschränkungen für MySQL in Amazon RDS

Es gibt einige bekannte Probleme und Einschränkungen bei der Arbeit mit MySQL in Amazon RDS. Weitere Informationen finden Sie unter Bekannte Probleme und Einschränkungen für MySQL in Amazon RDS.