Cheatsheet: Verwaltung von MySQL auf Amazon RDS
May 21, 2014
Amazon Relational Database Service (RDS) ist ein verwalteter Datenbankdienst von AWS, der die Einrichtung, den Betrieb und die Skalierung einer relationalen Datenbank in der Cloud vereinfacht.
Diese Anleitung bietet eine Übersicht der grundlegenden Befehle für die Verwaltung einer MySQL-Datenbank auf Amazon RDS.
1. Verbindung zur RDS-Instanz herstellen
Verwenden Sie den mysql-Client, um sich mit dem RDS-Endpunkt zu verbinden.
code
mysql -u BENUTZERNAME -p -h DEIN-RDS-ENDPOINT.rds.amazonaws.com
-u: Der Benutzername des Master-Benutzers (oder eines anderen Benutzers).-p: Fordert zur Passworteingabe auf.-h: Der Hostname (Endpunkt) Ihrer RDS-Instanz.
Direkte Verbindung zu einer Datenbank:
code
mysql -u BENUTZERNAME -p -h DEIN-RDS-ENDPOINT.rds.amazonaws.com DEIN_DB_NAME
2. Datenbanken und Benutzer verwalten
Neue Datenbank erstellen
code
CREATE DATABASE meine_datenbank;
Neuen Benutzer anlegen
Es ist eine bewährte Methode, für jede Anwendung einen eigenen Datenbankbenutzer mit eingeschränkten Rechten zu erstellen.
code
CREATE USER 'app_user'@'%' IDENTIFIED BY 'EinStarkesPasswort123!';
'app_user': Der Name des neuen Benutzers.'%': Erlaubt dem Benutzer, sich von jeder IP-Adresse aus zu verbinden. Für eine höhere Sicherheit sollten Sie dies auf die spezifische IP-Adresse oder den IP-Bereich Ihres Anwendungsservers einschränken (z.B.'192.168.1.100').
Berechtigungen vergeben
Gewähren Sie dem neuen Benutzer nur die Rechte, die er für seine Aufgaben benötigt (Prinzip der geringsten Rechte).
code
-- Gewährt dem Benutzer alle Rechte auf die spezifische Datenbank 'meine_datenbank'
GRANT ALL PRIVILEGES ON meine_datenbank.* TO 'app_user'@'%';
-- Übernimmt die neuen Berechtigungen
FLUSH PRIVILEGES;
Berechtigungen eines Benutzers anzeigen
code
SHOW GRANTS FOR 'app_user'@'%';
Passwort eines Benutzers ändern
code
ALTER USER 'app_user'@'%' IDENTIFIED BY 'EinNeuesStarkesPasswort456!';
Benutzer löschen
code
DROP USER 'app_user'@'%';
3. Daten Import und Export
SQL-Datei importieren
code
mysql -u BENUTZERNAME -p -h DEIN-ENDPOINT meine_datenbank < /pfad/zur/datei.sql
Datenbank-Dump erstellen (mysqldump)
code
mysqldump -u BENUTZERNAME -p -h DEIN-ENDPOINT meine_datenbank > backup.sql
Datenbank direkt von einer RDS-Instanz zu einer anderen migrieren
code
mysqldump -u src_user -p -h src_host src_db | mysql -u dest_user -p -h dest_host dest_db
4. Wichtige Diagnosebefehle
Alle Benutzer auflisten
code
SELECT user, host FROM mysql.user;
Datenbanken auflisten
code
SHOW DATABASES;
5. Fehlerbehebung
-
Access denied for user ...:- Überprüfen Sie Benutzername und Passwort.
- Stellen Sie sicher, dass der Host (
@'...'), von dem aus Sie sich verbinden, in den Benutzerrechten erlaubt ist.
-
Verbindungstimeout /
Could not connect:- Security Group: Überprüfen Sie die der RDS-Instanz zugewiesene Security Group. Der Port
3306(MySQL) muss für Ihre IP-Adresse oder die Security Group Ihres Anwendungsservers freigegeben sein. - Netzwerk-ACLs und VPC-Routing: Stellen Sie sicher, dass die Netzwerk-ACLs und die Routing-Tabellen in Ihrer VPC den Verkehr zur RDS-Instanz zulassen.
- Public Access: Prüfen Sie, ob die RDS-Instanz öffentlich erreichbar ist, falls Sie sich von außerhalb der VPC verbinden.
- Security Group: Überprüfen Sie die der RDS-Instanz zugewiesene Security Group. Der Port