GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Amazon:Wie ändere ich den Datenbanknamen in Amazon RDS MySQL?

Sie können die Datenbank mit dem folgenden Befehl umbenennen, aber stellen Sie sicher, dass Sie zuerst eine Sicherungskopie erstellen

CREATE database new_db_name;
RENAME TABLE db_name.table1 TO new_db_name, db_name.table2 TO new_db_name;
DROP database db_name;

Referenzen:http://www.rndblog.com/how-to-rename-a-database-in-mysql/https://stackoverflow.com/questions/12190000/rename-mysql-database


Sie können dies mit mysqldump abziehen. Hier der Haken:Sie können die Daten nicht versenden, da mit dem Versand der Daten Kosten verbunden sein können.

Nehmen wir für dieses Beispiel an, Sie möchten mydb umbenennen bis ourdb

SCHRITT 01:Erstellen Sie die neue Datenbank

mysql> CREATE DATABASE ourdb;

SCHRITT 02 :Schema ohne Trigger abrufen

mysqldump -hrdshost -uuser -ppassword -d -t -R --skip-triggers mydb > /tmp/schema.sql

SCHRITT 03 :Holen Sie sich die Trigger

mysqldump -hrdshost -uuser -ppassword --skip-routines --triggers mydb > /tmp/triggers.sql

SCHRITT 04 :Generieren Sie ein Skript, um INSERT ... SELECT auszuführen über alle Tabellen hinweg

WENN ES AUSLÄNDISCHE SCHLÜSSELBESCHRÄNKUNGEN GIBT

ETL_DATA_SCRIPT=/tmp/DataTransfer.sql
echo -n > ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@CHARACTER_SET_CLIENT;" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@CHARACTER_SET_RESULTS;" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@COLLATION_CONNECTION;" >> ${ETL_DATA_SCRIPT}
echo "SET NAMES utf8;" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@TIME_ZONE;" >> ${ETL_DATA_SCRIPT}
echo "SET TIME_ZONE='+00:00';" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@UNIQUE_CHECKS, UNIQUE_CHECKS=0;" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO';" >> ${ETL_DATA_SCRIPT}
echo "SET @[email protected]@SQL_NOTES, SQL_NOTES=0;" >> ${ETL_DATA_SCRIPT}
echo "SET group_concat_max_len = 104857600;" >> ${ETL_DATA_SCRIPT}
SQL="SELECT CONCAT('INSERT INTO ourdb.',table_name,' SELECt * FROM mydb.',table_name,';')"
SQL="${SQL} FROM information_schema.tables WHERE table_schema='mydb'"
mysql -hrdshost -uuser -ppassword -ANe"${SQL}" >> ${ETL_DATA_SCRIPT}

WENN ES KEINE AUSLÄNDISCHEN SCHLÜSSELEINSCHRÄNKUNGEN GIBT

ETL_DATA_SCRIPT=/tmp/DataTransfer.sql
SQL="SELECT CONCAT('ALTER TABLE mydb.',table_name,' RENAME ourdb.',table_name,';')"
SQL="${SQL} FROM information_schema.tables WHERE table_schema='mydb'"
mysql -hrdshost -uuser -ppassword -ANe"${SQL}" > ${ETL_DATA_SCRIPT}

Wenn es keine Fremdschlüsselbeschränkungen gibt, sollte dies schnell gehen.

SCHRITT 05:Kombinieren Sie die Dateien zu einem einzigen Skript

ETL_SCRIPT=/tmp/ETL.sql
cat /tmp/schema.sql        > ${ETL_SCRIPT}
cat /tmp/DataTransfer.sql >> ${ETL_SCRIPT}
cat /tmp/triggers.sql     >> ${ETL_SCRIPT}

SCHRITT 06:Überprüfen Sie das Skript

vi -R /tmp/ETL.sql

oder

less /tmp/ETL.sql

SCHRITT 07:Führen Sie das Skript aus

mysql -hrdshost -uuser -ppassword -Dourdb < ${ETL_SCRIPT}

SCHRITT 08:Stellen Sie sicher, dass sich alle Daten in der Zieldatenbank befinden

Das können Sie tun

Wenn es keine Fremdschlüsseleinschränkungen gäbe, sollte mydb leer sein und ourdb sollte alle Tabellen enthalten.

Wenn es Fremdschlüsseleinschränkungen gab, stellen Sie sicher, dass mydb und ourdb haben die gleiche Anzahl von Tabellen und die gleiche Anzahl von Zeilen. Stellen Sie sicher, dass alle Trigger vorhanden sind, indem Sie

ausführen
SELECT COUNT(1) trigger_count,table_schema
FROM information_schema.triggers
GROUP By table_schema;

SCHRITT 09:Alte Datenbank manuell löschen

mysql> DROP DATABASE mydb;

Ich habe das Löschen der Datenbank nicht in das Skript aufgenommen, nur für den Fall. :-)

PROBIEREN SIE ES AUS !!!


Linux
  1. Wie ändert man die Sortierung der MySQL-Datenbank?

  2. So kopieren Sie eine MySQL-Datenbank

  3. So importieren Sie die Exportdatenbank in MYSQL MariaDB

  4. So ändern Sie das MySQL-Root-Passwort

  5. Wie ändere ich das Zeitformat in Sekunden in ps -p?

So benennen Sie den MySQL-Datenbanknamen in Linux um

So ändern Sie den Website-Namen in WordPress

Wie ändere ich das MySQL-Datenbankpasswort von SolidCP?

Wie ändere ich das MySQL-Datenbankpasswort von WebsitePanel 2.1?

Wie man eine Datenbank in MySQL erstellt

So benennen Sie einen MySQL-Datenbanknamen um