Skip to content

Как создать и сконфигурировать связанный сервер для подключения к MySQL в SQL Server Management Studio

Пересказ статьи Marko Zivkovic. How to create and configure a linked server to connect to MySQL in SQL Server Management Studio


В этой статье дается инструкция, которая по шагам приведет вас к созданию связанного сервера в SSMS для подключения к базе данных MySQL.

Статья состоит из трех разделов:

  • Установка драйвера ODBC для MySQL

  • Конфигурирование драйвера ODBC для подключения к базе данных MySQL

  • Создание и конфигурирование связанного сервера с использованием драйвера ODBC

Установка ODBC-драйвера для MySQL


ODBC - это аббревиатура Open Database Connectivity (Connector). Программа разработана Microsoft в 1990-е. В целом она представляет собой API (программный интерфейс приложения) для доступа к системам баз данных.

Для ОС, которые не являются Windows, используется JDBC (Java Database Connectivity).

Перед установкой ODBC-драйвера для MySQL на Windows проверьте, что вы имеете последнюю версию Microsoft Data Access Components (MDAC), и в вашей системе установлен пакет Microsoft Visual C++ 2013 Redistributable Package.

Драйверы ODBC для MySQL можно загрузить и установить по этой ссылке. Имеется две версии драйверов ODBC для Windows, которые могут быть установлены в зависимости от приложения, с которым будут использоваться:



  • mysql-connector-odbc-8.0.17-win32.msi для 32-битных приложений

  • mysql-connector-odbc-8.0.17-winx64.msi для 64-бтных приложений


Установка драйвера MySQL ODBC для Windows очень простая. Выполните двойной щелчок на загруженном файле - появится окно приглашения:



После нажатия кнопки Next появится диалог лицензионного соглашения. Если вы согласны с ним, нажмите переключатель "I accept the terms in the license agreement", затем кнопку Next:



В диалоговом окне Setup Type выберите опцию Typical и нажмите кнопку Next:



В диалоге Ready to Install the Program показано что и где будет установлено. Нажмите кнопку Install для установки ODBC-драйвера.



Спустя пару секунд установка драйвера ODBC для MySQL завершится:



То, что драйвер ODBC для MySQL установлен на машине, можно проверить в панели управления:



Другой способ проверки - окно диалога ODBC Data Source Administrator:



Проверьте на вкладке Drivers диалогового окна ODBC Data Source Administrator, имеются ли драйверы MySQL ODBC:



Сконфигурируйте драйвер ODBC для подключения к базе данных MySQL


Для подключения к базе данных MySQL с использованием драйверов ODBC в диалоговом окне ODBC Data Source Administrator на вкладке System DSN нажмите кнопку Add:



В диалоге Create New Data Source выберите MySQL ODBC Driver и нажмите кнопку Finish:



В диалоге MySQL Connector/ODBC Data Source Configuration:



в области Data Source Name введите желаемое имя источника данных. В области Description дайте описание источника данных, если необходимо.

Используйте метод соединения TCP/IP Server или Named Pipe для подключения к MySQL, выбрав подходящий переключатель.

В данном примере выбран переключатель TCP/IP Server. В текстовой области напечатайте имя хоста или IP-адрес сервера MySQL. По умолчанию именем хоста служит localhost, а IP-адрес - 127.0.0.1. В области Port введите порт TCP/IP, который слушает сервер MySQL. Порт по умолчанию - 3306.

В области User напечатайте имя пользователя, под которым выполняется подключение к базе данных MySQL, а в области Password введите пароль пользователя. В выпадающем списке Database выберите базу данных, для которой устанавливается соединение:



Для тестирования корректности конфигурирования подключения к базе данных MySQL нажмите кнопку Test. Если соединение было установлено, появится следующее сообщение:



Кроме того, имя источника данных появится на вкладке System DSN диалога ODBC Data Source Administrator:



Создание и конфигурирование связанного сервера при использовании ODBC-драйвера


Теперь, когда ODBC-драйвер для MySQL установлен и сконфигурирован для подключения к базе данных MySQL, можно начать конфигурирование связанного сервера в SSMS для подключения к MySQL.

Перейдите в SSMS, в браузере объектов в ветке Server Objects (объекты сервера) выполните щелчок правой кнопкой на папке Linked Servers (связанные серверы) и выберите в меню вариант New Linked Server (новый связанный сервер):



Откроется диалоговое окно New Linked Server. Здесь будет вводиться конфигурационная информация для подключения к MySQL:



В текстовой области Linked server на вкладке General введите имя, которое будет использоваться для связанного сервера (например, MYSQL_SERVER).

Выберите переключатель Other data source, и из списка Provider выберите пункт Microsoft OLE DB Provider for ODBC Drivers:



В текстовую область Product name введите любое подходящее имя. Для Data source следует ввести имя источника данных ODBC:



На вкладке Security щелкните переключатель Be made using this security context, а в областях Remote login и With password введите имя пользователя, который есть в экземпляре сервера MySQL (выбранном в качестве источника данных), и его пароль:



На вкладке Server Options установите поля RPC и RPC Out в значение True:



В случае, когда обе эти опции не установлены в true, то при выполнении подобного кода:

EXEC ('SELECT * FROM test.table1') AT MYSQL_SERVER

может возникнуть следующая ошибка:

Msg 7411, Level 16, State 1, Line 1
Server ‘MYSQL_SERVER’ is not configured for RPC.

Подробно об опциях на вкладках Security и Server Options можно прочитать на странице How to create and configure a linked server in SQL Server Management Studio.

После установки всех опций в диалоге New Linked Server нажмите кнопку OK. Вновь созданный связанный сервер должен появиться в папке Linked Servers:



Прежде чем начать запрашивать данные из базы данных MySQL, перейдите в папку Providers в папке Linked Servers, выполните щелчок правой кнопкой на провайдере MSDASQL и выберите из контекстного меню команду Properties:



В диалоге Provider Options установите флажки Nested queries, Level zero only, Allow in process, Support ‘Like’ operator:



Например, если не установить флажок Allow in process, то выполнение подобного кода:

SELECT *
FROM OPENQUERY(MYSQL_SERVER, 'SELECT * FROM test.table1')

вызовет появление следующего сообщения об ошибке:

Msg 7399, Level 16, State 1, Line 1
The OLE DB provider “MSDASQL” for linked server “MYSQL_SERVER” reported an error. Access denied.
Msg 7350, Level 16, State 2, Line 1
Cannot get the column information from OLE DB provider “MSDASQL” for linked server “MYSQL_SERVER”.

Обратные ссылки

Нет обратных ссылок

Комментарии

Показывать комментарии Как список | Древовидной структурой

Нет комментариев.

Автор не разрешил комментировать эту запись

Добавить комментарий

Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
Standard emoticons like :-) and ;-) are converted to images.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA

Form options

Добавленные комментарии должны будут пройти модерацию прежде, чем будут показаны.