Làm cách nào để thêm máy chủ được liên kết MySQL vào SQL Server?


8

Tôi đang cố gắng thêm một máy chủ được liên kết trên SQL Server vào MySQL Server.

Lưu ý Máy chủ SQL được cài đặt trên một máy riêng biệt có tên miền khác.

Máy chủ SQL có 10.0.1.1trên old_domain.com.

Máy chủ MySQL có 10.0.1.2trên new_domain.com.

Tôi đã thêm Nguồn dữ liệu ODBC trên máy chủ 10.0.1.1và đã kiểm tra kết nối mà không có sự cố nào được báo cáo.

Sau đó, tôi đã mở Microsoft SQL Server Management Studio và điều hướng đến SQL SERVER > Server Object > Linked Servers.

Tôi đã đến trình hướng dẫn để thêm một máy chủ được liên kết và tôi đã cấu hình nó như vậy:

  1. Máy chủ được liên kết: "MySQLNewServer"
  2. Tôi đã chọn "Nhà cung cấp nguồn dữ liệu khác" Nhà cung cấp Microsoft OLE DB cho ODBC "Tên sản phẩm" Kết nối với MySQL "Nguồn dữ liệu" MySQL "cùng tên tại Nguồn dữ liệu được thêm vào trong bước đầu tiên.
  3. Trên tab bảo mật tôi đã chọn "Được thực hiện bằng bối cảnh bảo mật này" và tôi đặt tên người dùng SQL Server và mật khẩu SQL Server
  4. Tôi nhấn "Ok"

Lưu ý: Tôi đã làm theo hướng dẫn trên liên kết này http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/

Tuy nhiên, tôi nhận được lỗi này:

OLE DB Providor "MSDASQL" cho máy chủ được liên kết "MySQLNewServer" đã trả về tin nhắn "[MySQL] [ODBC 5.2 (w) Driver] Không thể kết nối với máy chủ MySQL trên 10.0.1.1 (10055) Lỗi máy chủ Microsoft SQL: 7303.

Ai đó có thể vui lòng cho tôi biết tôi đang làm gì sai? Làm thế nào tôi có thể có được 2 máy chủ này để liên lạc?

Câu trả lời:


1

Chúng tôi có một máy chủ được liên kết trên SQL trỏ đến máy chủ MySQL. Tạo máy chủ được liên kết là một điều khá đơn giản.

Phần khó khăn là lấy các quyền được sắp xếp bên phía MySQL.

Nếu bộ nhớ phục vụ quyền của tôi, bạn cần tạo một tài khoản cục bộ trên máy chủ SQL và tạo thông tin đăng nhập trên máy chủ MySQL cho tên máy tính đầy đủ nơi máy chủ được liên kết sẽ chạy.

Trên máy chủ SQL, tôi có thông tin đăng nhập cho Sqltest. Đây là tài khoản SQL

Trên các thuộc tính máy chủ được liên kết, tôi có "Bảo mật"> Được tạo bằng bối cảnh bảo mật này> tên người dùng và mật khẩu đăng nhập MySQL

Trên hộp MySQL tôi có thông tin đăng nhập cho Sqltest@myserver.com. Đây là nơi máy chủ được liên kết của tôi thất bại trong một thời gian khá dài.


1

Tôi tin rằng cả MySQL và MS-SQL nên cho phép kết nối từ xa. Vai trò của ODBC là tạo ra một đường ống hai chiều về mặt truyền dữ liệu (ngay cả khi gửi ACK cho kết nối máy chủ được liên kết), tức là cũng kiểm tra thông tin đăng nhập từ xa từ phía MS-SQL. đảm bảo rằng cổng 3306 được cho phép thông qua tường lửa 10.0.1.1.


0

Tôi sẽ suy đoán rằng đây không chính xác là điều bạn đang làm sai, giống như Windows sẽ không gặp nhiều rắc rối để cho bạn biết vấn đề thực sự là gì.

Số trong ngoặc đơn (10055) là lỗi hệ thống được trả về khi trình điều khiển ODBC cố gắng kết nối với 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.

Không có ích lắm. Lỗi 10055 WSAENOBUFS, có thể là một mã hữu ích hơn để sử dụng trong việc tìm kiếm cái nhìn sâu sắc về bản chất của vấn đề, hoặc có thể trở thành một sự xao lãng, một tác dụng phụ của vấn đề thực tế.

Tin tốt, nếu có tin tốt, là tôi cảm thấy tự tin rằng ít nhất bạn có thể cắt giảm một nửa sự cố và chỉ tập trung vào phía SQL Server, vì đây không phải là lỗi mà Máy chủ MySQL sẽ "trả lại" cho bạn. Ý tôi là, đây không phải là một thất bại "trong khi kết nối", đó thực sự là một thất bại trong việc bắt đầu với quá trình kết nối. Bạn chưa bao giờ thực sự kết nối với Máy chủ MySQL, vì vậy bạn có thể loại bỏ các quyền và cấu hình khác một cách an toàn ở phía Máy chủ MySQL là một phần của vấn đề cho đến khi bạn vượt qua điều kiện đặc biệt này ngăn bạn thậm chí cố gắng kết nối.

Trong một câu hỏi khác ở đây , mã lỗi là như nhau và vấn đề là không thể kết nối với Máy chủ MySQL, mặc dù tôi nghĩ trong trường hợp đó không phải là máy chủ được liên kết mà chỉ là kết nối máy khách thông thường và máy tính bị nghi vấn rõ ràng là có vấn đề về mạng

Mã lỗi khác, 7303, dường như ngụ ý vấn đề về quyền ở phía SQL Server. Cũng ở đây . Xin lỗi tôi không thể cụ thể hơn với những thứ cần thử, nhưng có lẽ một cái gì đó ở đây sẽ giúp bạn đi theo một hướng hữu ích.


Tôi không chắc chắn lắm. Tại một thời điểm nó đã hoạt động tốt. nhưng tôi nhận thấy nó vài ngày trước bị phá vỡ. Kể từ đó, tôi đã tắt tra cứu dns trên máy chủ mysql. vì vậy MySQL sẽ chỉ nhìn vào địa chỉ IP. Nhưng điều đó không thành vấn đề bởi vì người dùng mà tôi đang sử dụng để kết nối với mysql là root @%. Tôi không biết việc thêm "bỏ qua tên giải quyết" vào mysql có gây ra sự cố này hay không vì tôi ho vấn đề này một thời gian sau khi thay đổi đó diễn ra.
Mike
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.