Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pisahkan file mysqldump dengan beberapa database, berdasarkan database

Skrip Perl ini seharusnya berhasil.

#!/usr/bin/perl -w
#
# splitmysqldump - split mysqldump file into per-database dump files.

use strict;
use warnings;

my $dbfile;
my $dbname = q{};
my $header = q{};

while (<>) {

    # Beginning of a new database section:
    # close currently open file and start a new one
    if (m/-- Current Database\: \`([-\w]+)\`/) {
    if (defined $dbfile && tell $dbfile != -1) {
        close $dbfile or die "Could not close file!"
    } 
    $dbname = $1;
    open $dbfile, ">>", "$1_dump.sql" or die "Could not create file!";
    print $dbfile $header;
    print "Writing file $1_dump.sql ...\n";
    }

    if (defined $dbfile && tell $dbfile != -1) {
    print $dbfile $_;
    }

    # Catch dump file header in the beginning
    # to be printed to each separate dump file.  
    if (! $dbname) { $header .= $_; }
}
close $dbfile or die "Could not close file!"

Jalankan ini untuk file dump yang berisi semua database

./splitmysqldump < all_databases.sql


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengatur Ulang Kata Sandi Root MySQL atau MariaDB di Linux

  2. Bagaimana cara menghapus semua catatan duplikat dalam tabel MySQL tanpa tabel temp

  3. Cara memasukkan / mengambil file yang disimpan sebagai BLOB di db MySQL menggunakan python

  4. Permintaan untuk bergabung dengan dua tabel

  5. Bagaimana cara menghitung persen?