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

Bagaimana cara memigrasi database MS SQL yang berjalan pada mesin jarak jauh ke database MySQL lokal saya yang berjalan di linux, dengan mempertahankan penyandian

Menggunakan MySQL Workbench, saya telah mencoba kombinasi ini, tidak ada yang berhasil:

MS SQL jarak jauh> driver ODBC asli MySQL jarak jauh

MS SQL jarak jauh> driver MySQL ODBC DataSource jarak jauh

remote MS SQL> remote MySQL freeTDS ODBC driver (dengan atau tanpa UTF-8)

virtual MS SQL> driver ODBC asli MySQL virtual

virtual MS SQL> virtual MySQL ODBC DataSource driver

virtual MS SQL> virtual MySQL freeTDS ODBC driver (dengan atau tanpa UTF-8)

Dalam salah satu kasus tersebut, proses migrasi macet (Non Response Workbench) atau karakter tidak ditransfer dengan benar.

Total waktu trial and error sekitar 12 jam.

Di sini saya berbagi dengan Anda satu cara bagaimana saya berhasil memigrasikan seluruh database MS SQL ke server MySQL lokal saya yang berjalan di mesin dev saya.

Saat saya menghubungkan ke mesin W10 jarak jauh melalui Remote Desktop Connection (RDC) dari mesin VirtualBox saya, pada awalnya saya ingin menghapus langkah ekstra ini untuk mempermudah segalanya.

  1. jika Anda belum memilikinya, unduh dan instal mesin Virtual Box gratis yang ditawarkan Microsoft dan mulai

  2. dari mesin virtual ini mulai RDC dan sebelum menghubungkan, tambahkan disk lokal pada mesin virtual agar tersedia di mesin jarak jauh

  3. pada mesin jarak jauh, jalankan studio manajemen SQL Server dan buat cadangan basis data (Klik kanan pada basis data yang diinginkan, Tugas> Cadangan..., simpan berkas cadangan ke disk)

  4. salin file cadangan ini ke drive Anda di mesin virtual dengan menavigasi ke Jaringan dan mengunggah file ke drive C:di mesin virtual Anda

  5. instal di mesin virtual Anda MS SQL server, edisi Express yang gratis, bersama dengan SQL Server Management Studio (Saya telah mengunduh versi 2014)

  6. buat database baru dan pilih Tugas...> Pulihkan> Database..., pilih file yang Anda unggah ke mesin virtual Anda, pilih Timpa database yang ada..

  7. buat login baru untuk server MS SQL Anda (klik kanan pada Login), pilih login dan kata sandi yang diinginkan, tetapkan peran sysadmin, hanya untuk mempermudah, karena ini adalah proses migrasi satu kali

  8. di mesin Host Linux lokal Anda, instal MySQL Workbench terbaru, saya berasumsi bahwa database MySQL sudah berjalan secara lokal, jika tidak, instal

  9. karena Anda menggunakan Linux, Anda memerlukan langkah ekstra untuk menginstal driver ODBC FreeTDS ke sistem Anda, jika ini link, cara menginstal driver FreeTDS di Linux mati, cari Wizard Migrasi Database / Migrasi Microsoft SQL Server di manual MySQL Workbench

  10. setup mesin virtual agar dapat diakses dari sistem linux Host Anda, saya telah melakukannya dengan memilih Attached to:Bridged adapter dan memilih wlan0 di pengaturan mesin virtual

  11. mulai mesin virtual dan pilih rentang IP dari jaringan yang sama dengan yang digunakan adaptor Anda

  12. di mesin virtual Anda, tambahkan aturan firewall untuk server MS SQL atau matikan firewall untuk sementara

Mulai sekarang, semuanya dilakukan di mesin Linux lokal Anda dengan mesin virtual berjalan

  1. mulai Migrasi Database MySQL Workbench, pilih MS SQL sebagai mesin sumber, masukkan alamat IP yang benar yang Anda atur di mesin virtual Anda sebelumnya

  2. sebagai database target, gunakan pengaturan dan kredensial database MySQL lokal Anda

  3. pada langkah Opsi Pembuatan Target, pilih saja Buat file skrip SQL dan pilih Simpan skema jika sudah keluar.

  4. lakukan langkah selanjutnya hingga Anda mencapai Penyiapan Transfer Data. Disana pilih Online copy of table... tapi jangan tekan Next

  5. edit skrip yang disimpan di langkah 15.:

hapus:

CREATE SCHEMA IF NOT EXISTS `Test` ;

tambahkan:

CREATE DATABASE `Test` DEFAULT CHARACTER SET utf16 COLLATE utf16_czech_ci;

ubah semua buat definisi tabel dengan menambahkan kumpulan karakter dan susunan yang diinginkan ke definisi tabel:

CREATE TABLE IF NOT EXISTS `TestTable` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) COLLATE utf16_czech_ci DEFAULT NULL,
  PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf16 COLLATE=utf16_czech_ci;
  1. jalankan skrip yang diperbarui ini di database MySQL Anda

  2. lanjutkan ke langkah berikutnya di MySQL Workbench dan data harus diimpor dengan benar

Mungkin ada beberapa langkah yang tidak disebutkan secara eksplisit, beri tahu saya di komentar jika Anda memerlukan beberapa klarifikasi




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa saya tidak harus memasukkan array serial ke dalam bidang database saya?

  2. MYSQL:Memasukkan Bahasa Mandarin Tradisional &Sederhana di 'sel' yang sama

  3. Apa perbedaan antara addlash PHP dan mysql(i)_escape_string?

  4. Kapan menyimpan gambar dalam database (mySQL) dan kapan tidak? (Menghubungkan gambar ke item dalam database)

  5. Pilih dalam hubungan banyak-ke-banyak di MySQL