Bagaimana cara menambahkan server terkait MySQL ke SQL Server?

8

Saya mencoba menambahkan server tertaut pada SQL Server ke Server MySQL.

Perhatikan SQL Server diinstal pada mesin yang terpisah dengan nama domain yang berbeda.

SQL Server ada 10.0.1.1di old_domain.com.

Server MySQL ada 10.0.1.2di new_domain.com.

Saya telah menambahkan Sumber Data ODBC di server 10.0.1.1dan menguji koneksi tanpa masalah yang dilaporkan.

Kemudian saya membuka Microsoft SQL Server Management Studio dan menavigasi ke SQL SERVER > Server Object > Linked Servers.

Saya pergi ke wizard untuk menambahkan server yang ditautkan dan saya mengkonfigurasinya seperti:

  1. Server Tertaut: "MySQLNewServer"
  2. Saya memilih "Sumber data lain" Penyedia "Penyedia DB Microsoft OLE untuk ODBC" Nama produk "Koneksi ke MySQL" Sumber data "MySQL" nama yang sama di Sumber Data yang ditambahkan pada langkah pertama.
  3. Pada tab keamanan saya memilih "Dibuat menggunakan konteks keamanan ini" dan saya memasukkan nama pengguna SQL Server dan kata sandi SQL Server
  4. Saya menekan "Ok"

Catatan: Saya mengikuti instruksi pada tautan ini http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/

Namun, saya mendapatkan kesalahan ini:

Penyedia OLE DB "MSDASQL" untuk Server yang ditautkan "MySQLNewServer" mengembalikan pesan "[MySQL] [ODBC 5.2 (w) Driver] Tidak dapat terhubung ke server MySQL pada 10.0.1.1 (10055) Microsoft SQL Server Kesalahan: 7303.

Bisakah seseorang tolong beri tahu saya apa yang saya lakukan salah? Bagaimana saya bisa membuat 2 server ini berkomunikasi?

Mike
sumber

Jawaban:

1

Kami memiliki server tertaut pada SQL yang menunjuk ke server MySQL. Membuat server yang ditautkan adalah hal yang sangat mudah.

Bagian yang sulit adalah mendapatkan izin diselesaikan di sisi MySQL.

Jika memori sesuai dengan hak saya, Anda perlu membuat akun lokal di server SQL dan membuat login di server MySQL untuk nama komputer lengkap tempat server tertaut akan berjalan.

Di server SQL saya memiliki login untuk Sqltest. Ini adalah akun SQL

Pada properti server tertaut saya memiliki "Keamanan"> Dibuat menggunakan konteks keamanan ini> nama pengguna dan kata sandi login MySQL

Di kotak MySQL saya punya login untuk [email protected]. Di sinilah server tertaut saya gagal dalam waktu yang cukup lama.

Adrian Sullivan
sumber
1

Saya percaya bahwa baik MySQL dan MS-SQL harus memungkinkan koneksi jarak jauh. Peran ODBC adalah untuk membuat pipa yang dua arah dalam hal transfer data (bahkan jika mengirim ACK untuk koneksi server tertaut) yaitu juga memeriksa login jarak jauh dari sisi MS-SQL. memastikan bahwa port 3306 diizinkan melalui firewall 10.0.1.1.

Chagbert
sumber
0

Saya akan berspekulasi bahwa ini bukan sesuatu yang Anda lakukan salah, itu lebih seperti Windows tidak akan banyak kesulitan untuk memberi tahu Anda apa masalah sebenarnya.

Nomor dalam tanda kurung (10055) adalah kesalahan sistem yang dikembalikan ketika driver ODBC mencoba menyambung ke MySQL.

C:\>perror 10055
Win32 error code 10055: An operation on a socket could not be performed because
the system lacked sufficient buffer space or because a queue was full.

Tidak terlalu membantu. Kesalahan 10055 adalah WSAENOBUFS, yang mungkin merupakan kode yang lebih berguna untuk digunakan dalam mencari wawasan tentang sifat masalah, atau mungkin berubah menjadi gangguan, efek samping dari masalah yang sebenarnya.

Kabar baiknya, jika ada kabar baik, adalah saya merasa yakin bahwa Anda setidaknya dapat memotong dua pemecahan masalah Anda dan hanya fokus pada sisi SQL Server, karena ini bukan kesalahan bahwa Server MySQL akan "kembali" kepada Anda. Yang saya maksud adalah, ini bukan kegagalan "saat menyambung," ini adalah kegagalan dalam memulai proses menghubungkan. Anda tidak pernah benar-benar terhubung ke Server MySQL, jadi Anda harus dapat dengan aman mengesampingkan izin dan konfigurasi lainnya di sisi Server MySQL sebagai bagian dari masalah sampai Anda melewati kondisi khusus ini yang mencegah Anda dari bahkan mencoba untuk Menghubung.

Dalam pertanyaan lain di sini , kode kesalahannya sama, dan masalahnya adalah ketidakmampuan untuk terhubung ke Server MySQL, meskipun saya pikir dalam kasus itu bukan server yang terhubung tetapi hanya koneksi klien biasa, dan komputer yang dimaksud rupanya mengalami masalah jaringan.

Kode kesalahan lainnya, 7303, tampaknya menyiratkan masalah izin di sisi SQL Server. Juga disini . Maaf saya tidak bisa lebih spesifik dengan hal-hal untuk dicoba, tetapi mungkin sesuatu di sini akan membuat Anda pergi ke arah yang bermanfaat.

Michael - sqlbot
sumber
Saya tidak terlalu yakin. Pada satu titik itu bekerja dengan baik. tapi saya perhatikan beberapa hari yang lalu rusak. Sejak itu saya mematikan pencarian dns di server mysql. jadi MySQL hanya akan melihat alamat ip. Tapi itu tidak masalah karena pengguna yang saya gunakan untuk terhubung ke mysql dengan adalah root @%. Saya tidak tahu apakah menambahkan "lewati-nama-tekad" ke mysql menyebabkan masalah ini atau tidak karena saya batuk masalah ini beberapa saat setelah perubahan itu terjadi.
Mike