Saya telah membenturkan kepala saya untuk SQL Server 2005
mencoba mendapatkan banyak data. Saya telah diberikan database dengan hampir 300 tabel di dalamnya dan saya perlu mengubahnya menjadi database MySQL. Panggilan pertama saya adalah menggunakan bcp tetapi sayangnya itu tidak menghasilkan CSV yang valid - string tidak dienkapsulasi, jadi Anda tidak dapat menangani baris apa pun yang memiliki string dengan koma di dalamnya (atau apa pun yang Anda gunakan sebagai pembatas) dan saya masih harus menulis sendiri semua pernyataan buat tabel, karena jelas CSV tidak memberi tahu Anda apa pun tentang tipe data.
Apa yang lebih baik adalah jika ada beberapa alat yang dapat terhubung ke SQL Server dan MySQL, kemudian lakukan penyalinan. Anda kehilangan tampilan, prosedur tersimpan, pemicu, dll, tetapi tidak sulit untuk menyalin tabel yang hanya menggunakan tipe dasar dari satu DB ke DB lainnya ... bukan?
Apakah ada yang tahu tentang alat seperti itu? Saya tidak keberatan berapa banyak asumsi yang dibuatnya atau penyederhanaan apa yang terjadi, asalkan mendukung integer, float, datetime dan string. Saya harus melakukan banyak pemangkasan, normalisasi, dll. Jadi saya tidak peduli tentang menyimpan kunci, hubungan, atau semacamnya, tetapi saya membutuhkan kumpulan data awal dengan cepat!
sumber
Jawaban:
Cara terbaik yang saya temukan adalah MySQL Migration Toolkit yang disediakan oleh MySQL. Saya telah berhasil menggunakannya untuk beberapa proyek migrasi besar.
sumber
Menggunakan MSSQL Management Studio saya telah melakukan transisi tabel dengan MySQL OLE DB. Klik kanan pada database Anda dan pergi ke "Tugas-> Ekspor Data" dari sana Anda dapat menentukan sumber MsSQL OLE DB, sumber MySQL OLE DB dan membuat pemetaan kolom antara dua sumber data.
Kemungkinan besar Anda ingin mengatur database dan tabel terlebih dahulu di tujuan MySQL (ekspor akan ingin membuat tabel secara otomatis, tetapi ini sering kali mengakibatkan kegagalan). Anda dapat dengan cepat membuat tabel di MySQL menggunakan "Tugas-> Hasilkan Skrip" dengan mengklik kanan pada database. Setelah skrip kreasi Anda dibuat, Anda harus melangkah dan mencari / mengganti kata kunci dan jenis yang ada di MSSQL ke MYSQL.
Tentu saja Anda juga dapat membuat cadangan database seperti biasa dan menemukan utilitas yang akan memulihkan cadangan MSSQL di MYSQL. Namun saya tidak yakin apakah ada.
sumber
Edisi SQL Server 2005 "Standard", "Developer" dan "Enterprise" memiliki SSIS , yang menggantikan DTS dari SQL server 2000. SSIS memiliki koneksi bawaan ke DB-nya sendiri, dan Anda dapat menemukan koneksi yang telah ditulis orang lain MySQL. Inilah salah satu contohnya. Setelah Anda memiliki koneksi, Anda harus dapat membuat paket SSIS yang memindahkan data di antara keduanya.
Saya tidak perlu memindahkan data dari SQLServer ke MySQL, tetapi saya membayangkan bahwa setelah koneksi MySQL dipasang, ini berfungsi sama seperti memindahkan data antara dua SQLServer DB, yang cukup mudah.
sumber
Menggulirkan solusi PHP Anda sendiri pasti akan berfungsi meskipun saya tidak yakin apakah ada cara yang baik untuk menduplikasi skema secara otomatis dari satu DB ke DB lainnya (mungkin ini pertanyaan Anda).
Jika Anda hanya menyalin data, dan / atau Anda memerlukan kode khusus untuk mengkonversi antara skema yang dimodifikasi antara dua DB, saya akan merekomendasikan menggunakan PHP 5.2+ dan perpustakaan PDO. Anda akan dapat terhubung menggunakan PDO ODBC (dan menggunakan driver MSSQL). Saya mengalami banyak masalah saat memasukkan bidang teks besar dan karakter multi-byte dari MSSQL ke PHP menggunakan pustaka lain.
sumber
Alat lain untuk dicoba adalah suite SQLMaestro . Agak sulit untuk menentukan alat yang tepat, tetapi mereka memiliki berbagai alat, baik gratis maupun untuk pembelian yang menangani berbagai macam tugas untuk beberapa platform database. Saya sarankan untuk mencoba alat Data Wizard terlebih dahulu untuk MySQL, karena saya yakin itu akan memiliki alat "impor" yang tepat yang Anda butuhkan.
sumber