Mentransfer atau Memigrasikan database MySQL/MariaDB antar server biasanya hanya membutuhkan beberapa langkah mudah, tetapi transfer data dapat memakan waktu tergantung pada volume data yang ingin Anda transfer
Pada artikel ini, Anda akan mempelajari cara mentransfer atau memigrasikan semua database MySQL/MariaDB Anda dari server Linux lama ke server baru, mengimpornya dengan sukses, dan mengonfirmasi bahwa data tersebut ada.
Catatan penting
- Pastikan untuk menginstal versi MySQL yang sama di kedua server dengan distribusi yang sama
- Pastikan untuk memiliki cukup ruang kosong di kedua server untuk menampung file dump database dan database yang diimpor
- Jangan pernah mempertimbangkan untuk memindahkan data direktori database ke server lain. Jangan pernah mengacaukan struktur internal database, jika Anda melakukannya, Anda akan menghadapi masalah di masa mendatang
Ekspor Database MySQL ke File Dump
Pertama mulai dengan masuk ke server lama Anda dan hentikan layanan mysql/mariadb menggunakan perintah systemctl seperti yang ditunjukkan
# systemctl stop mariadb OR # systemctl stop mysqlKemudian buang semua database MySQL Anda ke satu file menggunakan perintah mysqldump
# mysqldump -u [user] -p --all-databases > all_databases.sql _Setelah dump selesai, Anda siap untuk mentransfer database
Jika Anda ingin membuang satu basis data, Anda dapat menggunakan
# mysqldump -u root -p --opt [database name] > database_name.sqlMentransfer File Dump Database MySQL ke Server Baru
Sekarang gunakan perintah scp untuk mentransfer file dump database Anda ke server baru di bawah direktori home seperti yang ditunjukkan
# scp all_databases.sql [email protected]:~/ [All Databases] # scp database_name.sql [email protected]:~/ [Singe Database]Setelah Anda terhubung, database akan ditransfer ke server baru
Impor File Dump Basis Data MySQL ke Server Baru
Setelah file dump MySQL ditransfer ke server baru, Anda dapat menggunakan perintah berikut untuk mengimpor semua database Anda ke MySQL
# mysql -u [user] -p --all-databases < all_databases.sql [All Databases] # mysql -u [user] -p newdatabase < database_name.sql [Singe Database] _Setelah impor selesai, Anda dapat memverifikasi database di kedua server menggunakan perintah berikut di shell mysql
# mysql -u user -p # show databases;Transfer Database MySQL dan Pengguna ke Server Baru
Jika Anda ingin memindahkan semua database MySQL, pengguna, izin, dan struktur data server lama ke yang baru, Anda dapat menggunakan perintah rsync untuk menyalin semua konten dari direktori data mysql/mariadb ke server baru seperti yang ditunjukkan
# rsync -avz /var/lib/mysql/* [email protected]:/var/lib/mysql/ _Setelah transfer selesai, Anda dapat mengatur kepemilikan direktori data mysql/mariadb ke pengguna dan grup mysql, lalu lakukan daftar direktori untuk memeriksa apakah semua file telah ditransfer
# chown mysql:mysql -R /var/lib/mysql/ # ls -l /var/lib/mysql/Itu saja. Pada artikel ini, Anda mempelajari cara memigrasikan semua database MySQL/MariaDB dengan mudah dari satu server ke server lainnya. Bagaimana Anda menemukan metode ini dibandingkan dengan metode lain?
Di blog itu kita akan melihat cara menyalin database MySQL dari satu server ke server lainnya. Kami telah melakukan langkah-langkah berikut untuk demonstrasi untuk menyalin database dari server test01 ke test02
1. Buat database baru clone_test dan buat tabel di database itu di server test01
2. Buang/salin database clone_test di server test01
3. Transfer/scp database dari test01 ke test02
4. Buat database clone_test di test02
5. Muat dump yang disalin ke database clone_test yang dibuat di test02
[root@test01 ~]# mysql -u root -p
Masukkan kata kunci
Selamat datang di monitor MariaDB. Perintah diakhiri dengan ;
Id koneksi MariaDB Anda adalah 2
Versi pelayan. 5. 5. 60-MariaDB Server MariaDB
Hak Cipta (c) 2000, 2018, Oracle, MariaDB Corporation Ab dan lainnya
Ketik 'bantuan;' . Ketik '\c' untuk menghapus pernyataan input saat ini
MariaDB [(tidak ada)]> tampilkan basis data;
+-----------------------+
Basis data
+-----------------------+
information_schema
mysql
skema_kinerja
tes
+-----------------------+
4 baris dalam set (0. 00 detik)
MariaDB [(tidak ada)]> BUAT DATABASE clone_test;
Kueri Oke, 1 baris terpengaruh (0. 00 detik)
MariaDB [clone_test]> buat tabel clone_table(
-> id int,
-> beri nama varchar(60)
-> ) MESIN=InnoDB;
Kueri Oke, 0 baris terpengaruh (0. 02 detik)
MariaDB [clone_test]> masukkan ke dalam clone_table values(1,'Nazmul Huda');
Kueri Oke, 1 baris terpengaruh (0. 00 detik)
MariaDB [clone_test]> pilih * dari clone_table;
+------+-------------+
Indo. nama
+------+-------------+
1. Nazmul Huda
+------+-------------+
1 baris dalam set (0. 01 detik)
MariaDB [clone_test]> keluar
Selamat tinggal
# mysqldump -u root -p clone_test >/tmp/clone_test. sql
Masukkan kata kunci
[root@test01 ~]# ls -lrt /tmp/clone_test. sql
-rw-------. 1 akar akar 1902 20 Mei 15. 07 /tmp/clone_test. sql
[root@test01 ~]# scp /tmp/clone_test. sql pengguna1@test02. /tmp/
[root@test02 ~]# ls -lrt /tmp/clone_test. sql
-rw-------. 1 s82893 sshusers 1902 20 Mei 15. 09 /tmp/clone_test. sql
[root@test02 ~]# mysql -u root -p
Masukkan kata kunci
Selamat datang di monitor MariaDB. Perintah diakhiri dengan ;
Id koneksi MariaDB Anda adalah 42
Versi pelayan. 10. 3. 13-MariaDB Server MariaDB
Hak Cipta (c) 2000, 2018, Oracle, MariaDB Corporation Ab dan lainnya
Ketik 'bantuan;' . Ketik '\c' untuk menghapus pernyataan input saat ini
MariaDB [(tidak ada)]> buat database clone_test;
Kueri Oke, 1 baris terpengaruh (0. 001 detik)
MariaDB [(tidak ada)]> keluar
Selamat tinggal
[root@test02 ~]# mysql -u root -p clone_test
Masukkan kata kunci
[root@test02 ~]# mysql -u root -p
Masukkan kata kunci
Selamat datang di monitor MariaDB. Perintah diakhiri dengan ;
Id koneksi MariaDB Anda adalah 44
Versi pelayan. 10. 3. 13-MariaDB Server MariaDB
Hak Cipta (c) 2000, 2018, Oracle, MariaDB Corporation Ab dan lainnya
Ketik 'bantuan;' . Ketik '\c' untuk menghapus pernyataan input saat ini
MariaDB [(tidak ada)]> tampilkan basis data;
+-----------------------+
Basis data
+-----------------------+
clone_test
perintah
information_schema
mysql
skema_kinerja
tes
transaksi
+-----------------------+
7 baris dalam set (0. 001 detik)
MariaDB [(tidak ada)]> gunakan clone_test
Membaca informasi tabel untuk melengkapi nama tabel dan kolom
Anda dapat mematikan fitur ini untuk memulai lebih cepat dengan -A
Basis data berubah
MariaDB [clone_test]> tampilkan tabel;
+------------------------+
Tables_in_clone_test
+------------------------+
clone_table
+------------------------+
1 baris dalam set (0. 000 detik)
MariaDB [clone_test]> pilih * dari clone_table;
+------+-------------+
Indo. nama
+------+-------------+
1. Nazmul Huda
+------+-------------+
1 baris dalam set (0. 000 detik)