【问题标题】:Create a Linked Server in SSMS to a MySQL Database on a Remote Server在 SSMS 中创建链接服务器到远程服务器上的 MySQL 数据库
【发布时间】:2020-04-28 04:24:00
【问题描述】:

我正在尝试创建与 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 驱动程序};DATABASE=mobiledoc;OPTION=134217728;PWD=password;UID=SQLUser;SERVER=ip 地址;端口=端口' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ECWIMA64',@locallogin = NULL,@useself = N'False',@rmtuser = N'*\Administrator', @rmtpassword = N'密码'

- 对于 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 驱动程序};DATABASE=mobiledoc;OPTION=134217728;PWD=password;UID=SQLUser;SERVER=ip 地址;端口=端口' EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ECWIMA32',@locallogin = NULL,@useself = N'False',@rmtuser = N'*\Administrator', @rmtpassword = N'密码'

另外,我不是 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'

【问题讨论】:

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


    【解决方案1】:

    您是否创建了 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 帐户

    【讨论】:

    • 是:@datasrc=N'ECWIMA'
    • 那你直接使用DSN。我更新了答案。您还需要为 @calalog 指定 mysql 架构/数据库名称
    • 试过了,没有成功
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2020-06-02
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多