在尝试连接远程SQL Server时:
$tsql -S localhost -U myuser
Run Code Online (Sandbox Code Playgroud)
我得到的错误如下:
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
Error 20009 (severity 9):
Unable to connect: Adaptive Server is unavailable or does not exist
OS error 61, "Connection refused"
There was a problem connecting to the server
Run Code Online (Sandbox Code Playgroud)
输出$tsql -C如下:
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /usr/local/freetds/conf/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: no
Thread safety: yes
iconv library: no
TDS …Run Code Online (Sandbox Code Playgroud) 我正在连接外部MSSQL数据库以从PHP55/osx导出,我有一个奇怪的问题.
码:
new \PDO("dblib:host={$hostname};dbname={$dbname}", $user, $pass);
Run Code Online (Sandbox Code Playgroud)
抛出:
SQLSTATE[01002] Adaptive Server connection failed (severity 9)
Run Code Online (Sandbox Code Playgroud)
但CLI的连接工作正常
tsql -S hostname -U user -P pass -L dbname:
locale is "cs_CZ.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>
Run Code Online (Sandbox Code Playgroud)
freetds.conf:
[hostname]
host = ipaddress
port = 1433
tds version = 8.0
Run Code Online (Sandbox Code Playgroud)
tsql -C:
Version: freetds v0.91
freetds.conf directory: /usr/local/Cellar/freetds/0.91/etc
MS db-lib source compatibility: no
Sybase binary compatibility: no
Thread safety: yes
iconv library: yes
TDS version: 7.1
iODBC: no
unixodbc: no
SSPI "trusted" …Run Code Online (Sandbox Code Playgroud) 我很难让所有这三个人和睦相处.我想我会列出所有各种配置,以及测试代码,看看是否有一双新鲜的眼睛可以实现我的愚蠢.
我正在运行12.04 Ubuntu Server,我正在尝试连接到MSSQL Server 2008并最终使用它与PyODBC.
但是,刚刚投入
tsql -S T2 -U Foo -P Bar
Run Code Online (Sandbox Code Playgroud)
我明白了
1>
2>
3>
4>
5>
6>
7>
8>
9>
10>
11>
Run Code Online (Sandbox Code Playgroud)
等等.
无论如何,如果有人能够提供帮助(如果你能让我清除这种阴霾,我将永远感激不尽),这是我目前的配置.
这是我的/etc/odbc.ini
[ODBC Data Sources]
odbcname = MySQL
T2 = MSSQL
[odbcname]
Driver = /usr/lib/odbc/libmyodbc.so
Description = MyODBC 3.51 Driver DSN
SERVER = Foobar
PORT = 3306
USER = Foo
Password = Bar
Database = Foobar
OPTION = 3
SOCKET =
[T2]
Driver = FreeTDS
Description = ODBC connection via FreeTDS
SERVER = …Run Code Online (Sandbox Code Playgroud) 我试图从Mac OSX上的python脚本连接到SQL服务器,并且在安装freeTDS之后brew install freeTDS我似乎无法libtdsodbc.so在我的机器上的任何地方找到驱动程序,以便我可以将它放在连接字符串中.
有没有人遇到过这个问题或者知道它为什么会发生?
谢谢
当我尝试通过python中的Pymssql连接到Azure数据库时,我面临以下错误:
pymssql.OperationalError: (20002, 'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (iprice-bi.database.windows.net:1433)\n')
Run Code Online (Sandbox Code Playgroud)
我通过tsql命令连接到数据库:
tsql -H server -p 1433 -U username -P password
locale is "en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)
locale charset是"UTF-8",使用默认字符集"UTF-8"1> SELECT @@ version 2> GO
Microsoft SQL Azure (RTM) - 12.0.2000.8
Mar 1 2016 22:36:40
Copyright (c) Microsoft Corporation
(1 row affected)
Run Code Online (Sandbox Code Playgroud)
我检查了freetds.conf以确保我使用的是正确的版本.
[global]
# TDS protocol version
tds version = 7.0
dump file = /tmp/freetds.log
dump file append = yes
Run Code Online (Sandbox Code Playgroud)
日志文件的结果也没有给出任何线索.
log.c:167:Starting log file for FreeTDS 0.95.87
on 2016-03-25 16:50:51 with …Run Code Online (Sandbox Code Playgroud) 我试图使用freetds的二进制文件从安装位置,在Windows上,但我无法弄清楚如何安装二进制文件; 谷歌搜索没有任何相关性.我正在安装,以便可以导入和使用Python模块Pymssql.
我收到与此帖相同的错误:https://github.com/pymssql/pymssql/issues/372
我正在尝试使用iODBC从我的Mac开发机器连接到Microsoft SQL Server.无论我做什么,我都会收到Unable to connect to data sourceFreeTDS驱动程序的错误消息.在查阅了各种手册,博客文章和StackOverflow问题之后,我就完蛋了.
我正在使用Mac OS X 10.7.4,通过Homebrew安装FreeTDS版本0.91.这是我正在做的事情:
$ brew install freetds
$ mkvirtualenv odbc
$ workon odbc
$ pip install pyodbc
$ tsql -H localhost -U mydbusername -P mydbpassword -p 1433
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> quit
Run Code Online (Sandbox Code Playgroud)
以上连接和工作,但:
$ iodbctest
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.0607.1008
Enter ODBC connect string (? shows list): driver={TDS};server=localhost;uid=mydbusername;pwd=mydbpassword;database=mydbname
1: SQLDriverConnect = [FreeTDS][SQL Server]Unable …Run Code Online (Sandbox Code Playgroud) sql.Open()返回*sql.DB类型的变量
我有一个函数调用其他所有需要进行数据库调用的函数
是否更正确/更有效:
含义
func DoLotsOfThings() {
db, _ := sql.Open()
defer db.Close()
DoTask1(db)
DoTask2(db)
}
Run Code Online (Sandbox Code Playgroud)
要么
func DoLotsOfThings() {
DoTask1()
DoTask2()
}
func DoTask1() {
db, _ := sql.Open()
defer db.Close()
}
func DoTask1() {
db, _ := sql.Open()
defer db.Close()
}
Run Code Online (Sandbox Code Playgroud)
我问的原因是因为我正在发送指向每个函数的指针,而我的驱动程序似乎打破了.我正在使用http://code.google.com/p/odbc,这让我相信每个功能都应该有自己的功能,并且我可以依赖于驱动程序的内部功能.
编辑
RE驱动器破损,它只发生在高流量环境下.它只发生在十分钟左右的时间之后.这让我相信存在某种内存泄漏会导致使用驱动程序停止工作.但是我为*sql.DB的每个实例推迟db.Close(),所以我不知道我还能做些什么来解决这个问题.
andybalholm说连接池是内部处理的,这似乎是准确的,因为它只在我尝试执行某些东西后才会中断,而不是在我调用sql.Open()时
如果我让Go应用程序运行,它将无法执行任何类型的SQL查询,但如果我尝试单独运行其他Go测试连接到MSSQL并运行查询,它就可以运行.
我正在将PHP应用程序从在Windows环境中运行转换为基于Linux的环境.
它利用PDO针对Microsoft SQL Server数据库运行存储过程.
所以,我已经安装并配置了PHP 5.6.22,Apache,freetds和pdo dblib以方便应用程序.
大多数存储过程执行都很完美.除了返回多个行集的那些.
当我打电话时$pdo->nextRowset(),我得到了这个致命的错误:
SQLSTATE[HY000]: General error: PDO_DBLIB: dbresults() returned FAIL
Run Code Online (Sandbox Code Playgroud)
我能找到的唯一参考是PHP 5.6.9中报告的错误已修复.
但是,我在PHP 5.6.22中遇到了同样的问题.
有没有人有任何想法为什么会发生这种情况以及我如何解决它?
我正在尝试弄清楚当连接到Linux上的MS-SQL服务器时,这两个拼图是如何交互在一起的.
据我了解,FreeTDS是用于与MS-SQL交谈的协议(即一组规则),它实际上是在进行交谈.Unixodbc是一个实现ODBC API的驱动程序,即我实现了一组函数.
为什么两件事都必要?任何人都可以详细说明我对这两件事实际做了什么的粗略理解吗?