如何建立sqlserver 外部数据库连接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何建立sqlserver 外部数据库连接相关的知识,希望对你有一定的参考价值。

Windows Vista 和 Windows Server 2008 以及更高版本

以下过程通过使用具有高级安全 Microsoft 管理控制台 (MMC) 管理单元的 Windows 防火墙来配置该 Windows 防火墙。从 Windows Vista 和 Windows Server 2003 开始提供此管理单元。高级安全 Windows 防火墙仅配置当前配置文件。有关高级安全 Windows 防火墙的详细信息,请参阅配置 Windows 防火墙以允许 SQL Server 访问。
打开 Windows 防火墙的端口以进行 TCP 访问
在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”。
在“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”。
在“规则类型”对话框中,选择“端口”,然后单击“下一步”。
在“协议和端口”对话框中,选择 TCP。选择“特定本地端口”,然后键入数据库引擎实例的端口号,例如默认实例的端口号 1433。单击“下一步”。
在“操作”对话框中,选择“允许连接”,然后单击“下一步”。
在“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”。
在“名称”对话框中,输入此规则的名称和说明,再单击“完成”。
在使用动态端口时打开对 SQL Server 的访问
在“开始”菜单上,单击“运行”,键入 WF.msc,然后单击“确定”。
在“高级安全 Windows 防火墙”的左窗格中,右键单击“入站规则”,然后在操作窗格中单击“新建规则”。
在“规则类型”对话框中,选择“程序”,然后单击“下一步”。
在“程序”对话框中,选择“此程序路径”。单击“浏览”,导航到要通过防火墙访问的 SQL Server 实例,再单击“打开”。默认情况下,SQL Server 位于 C:\\Program Files\\Microsoft SQL Server\\MSSQL10_50.MSSQLSERVER\\MSSQL\\Binn\\Sqlservr.exe。单击“下一步”。
在“操作”对话框中,选择“允许连接”,然后单击“下一步”。
在“配置文件”对话框中,选择在您想要连接到数据库引擎时描述计算机连接环境的任何配置文件,然后单击“下一步”。
在“名称”对话框中,输入此规则的名称和说明,再单击“完成”。

网络查询解决方案:
Step 1: 在服务器图标上单击右键,选择property,然后选connection,把allow remote connection选上,这一步的目的是让数据库允许远程连接。

Step 2: 在数据库服务器图标上,展开目录,找到Security下的Logins子目录树,设置SA账户的属性,改password,在status栏里,login选上enable。这一步的目的是,允许远程客户端使用sa用户邓肯,sa是system administrator的缩写,拥有数据库最高管理权限,默认状态下是禁用的。

Step3:在数据库服务器图标上右键,打开Facets选项把RemoteDacEnabled的value改成true。这一步的目的是允许建立远程专用管理员连接,此种连接拥有最高权限,即使无法建立标准连接,也可以建立DAC连接。

Step4:开启服务,打开SQL Server Configuration Tool,打开网络配置,选择TCP/IP协议,点开属性,IP地址填数据库所在服务器的IP地址,如果是本地服务器,填127.0.0.1。
参考技术A 首先你说的外部数据库是指的跨服务器还是在同一个服务器上;

如果在同一台服务上的两个库的话,直接使用库名.表名直接访问,如果是在不同服务器上的话,需要建立服务器连接:

exec sp_addlinkedserver
--链接服务名称
@server = 'UPDateLink',
--产品名称
@srvproduct = '',
--访问接口
@provider = 'SQLOLEDB',
--数据源
@datasrc = '200.200.200.251'

declare @LocalUser varchar(20),@ServerUser varchar(20),@SeverPSW varchar(20)
Set @LocalUser = 'sa'
Set @ServerUser = 'root'
Set @SeverPSW = '617114'
exec sp_addlinkedsrvlogin UPDateLink,False,@LocalUser,@ServerUser,@SeverPSW
参考技术B exec sp_addlinkedserver 'l_lnk ', ' ', 'SQLOLEDB ', '192.168.0.1 '
GO
exec sp_addlinkedsrvlogin 'l_lnk ', 'false ',null, 'reader', 'reader'
GO

如何在localhost上与mysql服务器建立连接?

我想在localhost上与sql server建立新的连接,这样我就可以从sql server获取数据。但在进行连接时存在一些问题。

错误: - [mysql] 2019/02/11 15:30:00 driver.go:81: net.Error from Dial()': dial tcp serverPort:3306: connect: connection timed out

而我正在使用的代码是

func ConnectMsqlDb() (db *sql.DB, err error) {
db, err = sql.Open("mysql", 
    fmt.Sprintf("%s:%s@tcp(%s:"+SqlDbPort+")/"+SqlDatabase, 
    SqlUsername, SqlPassword, SqlServerPort))
fmt.Println("OPEN", db, err)
if err != nil {
    return nil, err
}
//defer db.Close()
fmt.Println("PING:-", err)
err = db.Ping()
fmt.Println("PING:-", err)
if err != nil {
    return nil, err
}
return db, nil
}     

你能帮助我摆脱这个问题吗?

答案

如果您尝试连接到远程服务器,则需要其完整地址:

<username>:<pw>@tcp(<HOST>:<port>)/<dbname>

在您的示例中,我没有在任何地方看到主机,因此它尝试连接到在localhost上运行的服务器(由SqlServerPort提供的端口)。

A simple connection example

func main() {
    db, err := sql.Open("mysql",
        "user:password@tcp(127.0.0.1:3306)/hello")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()
}

您需要将127.0.0.1替换为远程服务器的实际IP地址(或主机名)。

以上是关于如何建立sqlserver 外部数据库连接的主要内容,如果未能解决你的问题,请参考以下文章

Access使用外部数据源的方法?

PHP当中如何使用Wampserver连接到Mysql数据库以及怎样使用

为啥我的VS2005连不上SQL2005呀!建立连接时出现了错误!

如何断开wincc与数据库的连接

连接到我的远程 SqlServer 数据库

怎么连接sqlserver数据库