sql >> Database >  >> RDS >> Mysql

Hoe alle MySQL-databases van oude naar nieuwe server over te zetten?

Een MySQL/MariaDB overzetten of migreren database tussen servers duurt meestal slechts enkele eenvoudige stappen, maar gegevensoverdracht kan enige tijd duren, afhankelijk van de hoeveelheid gegevens die u wilt overbrengen.

In dit artikel leert u hoe u al uw MySQL/MariaDB overzet of migreert databases van de oude Linux-server naar een nieuwe server, importeer deze succesvol en bevestig dat de gegevens aanwezig zijn.

Belangrijke opmerkingen

  • Zorg ervoor dat dezelfde versie van MySQL op beide servers met dezelfde distributie is geïnstalleerd.
  • Zorg voor voldoende vrije ruimte op beide servers voor het databasedumpbestand en de geïmporteerde database.
  • Overweeg nooit om de data te verplaatsen directory van de database naar een andere server. Knoei nooit met de interne structuur van de database, als u dat wel doet, krijgt u in de toekomst problemen.

Exporteer een MySQL-database naar een dumpbestand

Begin eerst door in te loggen op uw oude server en stop de mysql/mariadb-service met behulp van de systemctl commando zoals getoond.

# systemctl stop mariadb
OR
# systemctl stop mysql

Dump dan al je MySQL databases naar een enkel bestand met behulp van de opdracht mysqldump.

# mysqldump -u [user] -p --all-databases > all_databases.sql

Zodra de dump is voltooid, bent u klaar om de databases over te dragen.

Als u een enkele database wilt dumpen, kunt u het volgende gebruiken:

# mysqldump -u root -p --opt [database name] > database_name.sql

Dumpbestand MySQL-databases overzetten naar nieuwe server

Gebruik nu het scp-commando om het dumpbestand van uw database naar de nieuwe server onder de thuismap over te brengen, zoals weergegeven.

# scp all_databases.sql [email protected]:~/       [All Databases]
# scp database_name.sql [email protected]:~/       [Singe Database]

Zodra u verbinding heeft gemaakt, wordt de database overgebracht naar de nieuwe server.

Importeer MySQL-databases dumpbestand naar nieuwe server

Zodra het MySQL-dumpbestand naar de nieuwe server is overgebracht, kunt u de volgende opdracht gebruiken om al uw databases in MySQL te importeren.

# mysql -u [user] -p --all-databases < all_databases.sql   [All Databases]
# mysql -u [user] -p newdatabase < database_name.sql      [Singe Database]

Zodra het importeren is voltooid, kunt u de databases op beide servers verifiëren met de volgende opdracht op de mysql-shell.

# mysql -u user -p
# show databases;

MySQL-databases en gebruikers overzetten naar nieuwe server

Als u al uw MySQL-databases, gebruikers, machtigingen en gegevensstructuur van de oude server naar de nieuwe wilt verplaatsen, kunt u de opdracht rsync gebruiken om alle inhoud van de mysql/mariadb-gegevensmap naar de nieuwe server te kopiëren, zoals weergegeven.

# rsync -avz /var/lib/mysql/* [email protected]:/var/lib/mysql/ 

Zodra de overdracht is voltooid, kunt u het eigendom van de mysql/mariadb-gegevensmap instellen op gebruiker en groep mysql, en vervolgens een maplijst maken om te controleren of alle bestanden zijn overgedragen.

# chown mysql:mysql -R /var/lib/mysql/
# ls  -l /var/lib/mysql/

Dat is alles! In dit artikel hebt u geleerd hoe u eenvoudig alle MySQL/MariaDB-databases van de ene server naar de andere kunt migreren. Hoe vind je deze methode in vergelijking met andere methodes? We horen graag van je via het onderstaande reactieformulier om ons te bereiken.


  1. Hoe maak je een back-up van een postgresql-database vanuit psql?

  2. SQL-query's

  3. Een reeks getallen genereren in MySQL

  4. postgres kolom X bestaat niet