mysql - 在 SSMS 中创建到远程服务器上的 MySQL 数据库的链接服务器

标签 mysql sql-server ssms remote-server linked-server

我正在尝试创建到 MySQL 数据库的链接服务器,但我不断收到错误 7303:未找到数据源名称且未指定默认驱动程序。

  • 数据库位于我必须使用登录名和密码远程连接的服务器上
    • 我使用远程桌面连接来连接到服务器
  • 我创建了 64 位和 32 位系统 DSN,测试时连接成功

这是我正在使用的字符串:

- 对于 64 位:

EXEC master.dbo.sp_addlinkedserver @server = N'ECWIMA64' ,@srvproduct=N'MySQL' ,@provider=N'MSDASQL' ,@datasrc=N'ECWIMA' ,@provstr=N'Driver={MySQL ODBC 8.0 ANSI Driver};DATABASE=mobiledoc;OPTION=134217728;PWD=password;UID=SQLUser;SERVER=ip address;Port=port' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ECWIMA64', @locallogin = NULL , @useself = N'False', @rmtuser = N'*\Administrator', @rmtpassword = N'password'

- 对于 32 位:

EXEC master.dbo.sp_addlinkedserver @server = N'ECWIMA32' ,@srvproduct=N'MySQL' ,@provider=N'MSDASQL' ,@datasrc=N'ECWIMA32' ,@provstr=N'Driver={MySQL ODBC 5.1 Driver};DATABASE=mobiledoc;OPTION=134217728;PWD=password;UID=SQLUser;SERVER=ip address;Port=port' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ECWIMA32', @locallogin = NULL , @useself = N'False', @rmtuser = N'*\Administrator', @rmtpassword = N'password'

另外,我不是 IT,所以请帮我简化一下。

这是下一次尝试:

EXEC master.dbo.sp_addlinkedserver
@server = N'ECWIMA64' 
,@srvproduct=N'MySQL'
,@provider=N'MSDASQL'
,@datasrc=N'ECWIMA'
,@catalog=N'mobiledoc'
,@provstr=N'Driver={MySQL ODBC 8.0 ANSI Driver};DATABASE=mobiledoc;OPTION=134217728;PWD=password;UID=SQLUser;SERVER=ipaddress;Port=4928;ODBC:DSN=ECWIMA'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ECWIMA64', @locallogin = NULL , @useself = N'False', @rmtuser = N'*\Administrator', @rmtpassword = N'password'

最佳答案

您是否创建了 ODBC 数据源?您需要先创建数据源并引用数据源名称:

@provstr=N'ODBC:DSN=YourDataSourceName'

例如:

EXEC master.dbo.sp_addlinkedserver @server = N'ECWIMA64' ,@srvproduct=N'MySQL' ,@provider=N'MSDASQL' ,@datasrc=N'ECWIMA' ,@provstr=N'ODBC:DSN=ECWIMA',@catalog=N'MySqlSchemaName'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ECWIMA64', @locallogin = NULL , @useself = N'False', @rmtuser = N'MysqlAccount', @rmtpassword = N'password'

您需要提供链接服务器的 mysql 数据库名称和 mysql 帐户

关于mysql - 在 SSMS 中创建到远程服务器上的 MySQL 数据库的链接服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683026/

相关文章:

Mysql按分钟查询、选择、分组、求和

mysql - 删除给定查询结果以外的所有行

sql - 确定用户是否至少有 5 张收据且 75% 的评分高于 9

sql - 连接2个表并计算SQL中特定字段的出现次数

sql - 无法连接到 sql server : SQL server Instance failure. (System.Data)

filter - 无法让过滤器在多个条件下工作

mysql - 如何将经常访问的数据放入数据库中的 "quick access"区域

mysql - 如果 mysql 查询为空,则复制一个值

sql-server - Azure SQL 托管实例 - 不支持创建凭据

sql - SQL临时表上的红色错误行