Как создать и сконфигурировать связанный сервер для подключения к 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”.
Обратные ссылки
Автор не разрешил комментировать эту запись
Комментарии
Показывать комментарии Как список | Древовидной структурой