标签: unixodbc

Pyodbc - "未找到数据源名称,并且未指定默认驱动程序"

pyodbc上班很困难.我有unixodbc,unixodbc-dev,odbc-postgresql,pyodbc在我的Linux Mint的14.我失去希望找到自己的解决方案安装的软件包,任何帮助表示赞赏.详情如下:

运行:

>>> import pyodbc
>>> conn = pyodbc.connect("DRIVER={PostgreSQL};SERVER=localhost;DATABASE=test;USER=openerp;OPTION=3;")
Run Code Online (Sandbox Code Playgroud)

给我:

>>> pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')
Run Code Online (Sandbox Code Playgroud)

#odbcinst -j给出:

unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/atman/.odbc.ini
SQLULEN Size.......: 4
SQLLEN Size........: 4
SQLSETPOSIROW Size.: 2
Run Code Online (Sandbox Code Playgroud)

这让我觉得存在unixodbc配置问题.这是我的unixodbc配置文件内容:

档案 /etc/odbcinst.ini:

[PostgreSQL ANSI]
Description     = PostgreSQL ODBC …
Run Code Online (Sandbox Code Playgroud)

postgresql unixodbc pyodbc python-2.7

41
推荐指数
3
解决办法
8万
查看次数

"Adaptive Server不可用或不存在"错误从PHP连接到SQL Server

我正在尝试使用unixODBC和FreeTDS从我的Mac连接到SQL Server 2005数据库,如我在此处所述.但是,当我尝试使用相同的设置连接到不同的数据库时,我得到:

Connection Failed:[FreeTDS][SQL Server]Unable to connect: Adaptive Server is unavailable or does not exist.
Run Code Online (Sandbox Code Playgroud)

这是我的freetds.conf设置:

[my_db]
host = 12.34.56.789
port = 1433
tds version = 8.0
Run Code Online (Sandbox Code Playgroud)

这是我的odbc.ini:

[my_dsn]
Driver = /opt/local/lib/libtdsodbc.so
Description = My Database
Trace = no
Servername = my_db
Database = MyDB

[ODBC Data Sources]
my_dsn = FreeTDS
Run Code Online (Sandbox Code Playgroud)

我仍然可以连接到我在这台计算机上设置的其他数据库(在我上面链接的博客文章中描述),所以我很确定错误不在Mac端.我已在服务器上验证我正在使用正确的IP地址和端口.关于什么可能是问题的任何想法,以及它是否在服务器端?

php sql-server sql-server-2005 unixodbc freetds

36
推荐指数
5
解决办法
9万
查看次数

iODBC和unixODBC之间有什么功能差异?

有两个主要的开源平台独立实现ODBC.它是iODBCunixODBC.

考虑到Unix作为ODBC用户平台和功能方面,这两种实现之间真正的实际区别是什么?

unix odbc unixodbc iodbc

30
推荐指数
2
解决办法
7981
查看次数

[01000] [unixODBC] [驱动程序管理器]无法打开lib'/usr/local/easysoft/oracle/InstantClient112/lib/libsqora.so':找不到文件

我试图从Linux服务器访问oracle.我正在使用unixODBC.

当我尝试使用isql访问oracle时,我得到错误,驱动程序管理器无法打开libsqora.so.12.1.

ODBC.INI

[NAME]
 Application Attributes = T
 Attributes = W
 BatchAutocommitMode = IfAllSuccessful
 BindAsFLOAT = F
 CloseCursor = F
 DisableDPM = F
 DisableMTS = T
 Driver = Oracle 11g ODBC driver
 DSN = DSN_NAME
 EXECSchemaOpt =
 EXECSyntax = T
 Failover = T
 FailoverDelay = 10
 FailoverRetryCount = 10
 FetchBufferSize = 64000
 ForceWCHAR = F
 Lobs = T
 Longs = T
 MaxLargeData = 0
 MetadataIdDefault = F
 QueryTimeout = T
 ResultSets = T
 ServerName = ServerName
 SQLGetData extensions = F …
Run Code Online (Sandbox Code Playgroud)

linux oracle oracleclient unixodbc

21
推荐指数
2
解决办法
5万
查看次数

PyODBC:即使它存在也无法打开驱动程序

我是linux世界的新手,我想从Python查询Microsoft SQL Server.我在Windows上使用它,它非常好,但在Linux中它非常痛苦.

几个小时后,我终于成功使用unixODBC在Linux Mint上安装Microsoft ODBC驱动程序.

然后,我用python 3环境设置了一个anaconda.

然后我这样做:

import pyodbc as odbc

sql_PIM = odbc.connect("Driver={ODBC Driver 13 for SQL Server};Server=XXX;Database=YYY;Trusted_Connection=Yes")
Run Code Online (Sandbox Code Playgroud)

它返回:

('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0' : file not found (0) (SQLDriverConnect)")
Run Code Online (Sandbox Code Playgroud)

我没有遗忘的是,PyODBC似乎从odbcinst.ini读取了正确的文件路径,但仍然不起作用.

我去了"/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0",文件确实存在!

那为什么它告诉我它不存在?以下是一些可能的线索:

  • 我在虚拟环境中
  • 我需要拥有"读取"权限,因为它是根文件路径

我不知道如何解决这些问题.

谢谢 !

python linux sql-server unixodbc pyodbc

21
推荐指数
2
解决办法
1万
查看次数

安装unixODBC时缺少sql.h头文件

我正在使用最新的Ubuntu 12.04系统.我有unixodbc(来自ubuntu repos的v2.2.14),安装了MySQL及其相关的驱动程序.还连接到有效的DSN.通过签发验证isql DBName UName passwd.

我正在尝试编译一个使用ODBC与数据库交互的C应用程序.我搜索的几乎所有地方似乎都表明我应该在某处安装"sql.h".A find / -iname sql.h -print表明我没有它.

所以我的问题是:它在哪里?安装出了什么问题(虽然没有报告错误)?你推荐什么步骤?重新安装?从源代码编译(最新版本?)?

c ubuntu odbc unixodbc header-files

19
推荐指数
1
解决办法
3万
查看次数

RODBC无法识别我的odbc设置

我在Red Hat Linux 6服务器上运行R 2.15.2.我的目标是通过RODBC连接到另一台机器上的MS SQL Server数据库.我做了我的研究,并从微软支持网站下载并安装了Linux版本的MS SQL ODBC驱动程序.我从源代码构建了unixODBC版本2.3.0,因为它是windows驱动程序所必需的,并且还没有在RHL repos中(repo版本是2.2.14).

无论如何,经过一些工作,我终于安装并正确配置了驱动程序,并且我可以通过isql命令成功连接到SQL Server数据库:

$ isql -v test testuser testpass
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL>
Run Code Online (Sandbox Code Playgroud)

所以我知道我有我odbc.iniodbcinst.ini文件正确设置.

但是,当我尝试从R中访问ODBC连接时,会发生以下情况:

> test <- odbcDriverConnect('DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass')
Warning messages:
1: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") :
   [RODBC] ERROR: state IM002, code 0, message [unixODBC][Driver Manager]Data 
   source name not found, and no default driver specified
2: In odbcDriverConnect("DSN=test;Database=RSQLTest01;Uid=testuser;Pwd=testpass") : …
Run Code Online (Sandbox Code Playgroud)

linux r unixodbc rodbc

17
推荐指数
1
解决办法
1万
查看次数

Debian Linux上的pyodbc/FreeTDS/unixODBC:TDS版本的问题

我在Debian Lenny(5.0.7)上成功使用pyodbc时遇到了一些麻烦.具体来说,我似乎无法获取NVARCHAR值(不是SQL Server专家,所以对我很容易:)).

大多数传统查询都可以.例如,table1中的行数产生

cursor.execute("SELECT count(id) from table1")
<pyodbc.Cursor object at 0xb7b9b170>
>>> cursor.fetchall()
[(27, )]
Run Code Online (Sandbox Code Playgroud)

就像完全转储ID一样

>>> cursor.execute("SELECT id FROM table1")
<pyodbc.Cursor object at 0xb7b9b170>
>>> cursor.fetchall()
[(0.0, ), (3.0, ), (4.0, ), (5.0, ), (6.0, ), (7.0, ), (8.0, ), (11.0, ), (12.0, ), (18.0, ), (19.0, ), (20.0, ), (21.0, ), (22.0, ), (23.0, ), (24.0, ), (25.0, ), (26.0, ), (27.0, ), (28.0, ), (29.0, ), (32.0, ), (33.0, ), (34.0, ), (35.0, ), (36.0, ), …
Run Code Online (Sandbox Code Playgroud)

unixodbc pyodbc freetds sql-server-2008

15
推荐指数
3
解决办法
4202
查看次数

Ruby连接到SQL Server

我在将Ruby连接到Microsoft SQL Server时遇到了麻烦.我正在运行Mac OS X,但目标环境是Ubuntu Linux.

这是我尝试过的:

  • 安装unixODBC
  • 安装FreeTDS
    • 使用了选项 --with-unixodbc=/usr/local/etc --with-tdsver=8.0

然后我将这些文件放在/usr/local/etc:

  • odbc.ini
  • odbcinst.ini
  • freetds.conf

我在odbcinst.ini文件中将FreeTDS驱动程序的引用添加到我的ODBC驱动程序文件中,如下所示:

;
; odbcinst.ini
;
;
[FreeTDS]
Driver = /usr/local/lib/libtdsodbc.so
Run Code Online (Sandbox Code Playgroud)

然后我在freetds.conf文件中配置服务器,如下所示:

# Aries database server (SQL Server 2008)
[aries-db1]
        host = xx.xx.xx.xx
        port = 1433
        tds version = 8.0
Run Code Online (Sandbox Code Playgroud)

最后我在odbc.ini文件中添加了ODBC DSN,如下所示:

[aries-db1]
Driver      =   FreeTDS
Description =   ODBC Connection via FreeTDS
Trace       =   1
Servername  =   aries-db1
Database    =   MY_DB
UID         =   user1
PWD …
Run Code Online (Sandbox Code Playgroud)

ruby sql-server odbc unixodbc freetds

13
推荐指数
1
解决办法
2万
查看次数

在Ubuntu 18.04 LTS上安装Google Cloud SDK后,Apt-get损坏

我正在使用以下命令在Ubuntu VM上安装Google Cloud SDK

# Add the Cloud SDK distribution URI as a package source
echo "deb [signed-by=/usr/share/keyrings/cloud.google.gpg] http://packages.cloud.google.com/apt cloud-sdk main" | sudo tee -a /etc/apt/sources.list.d/google-cloud-sdk.list

# Import the Google Cloud Platform public key
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

# Update the package list and install the Cloud SDK
sudo apt-get update && sudo apt-get install google-cloud-sdk
Run Code Online (Sandbox Code Playgroud)

我认为它现在坏了。

 apt-get install unixODBC unixODBC-dev
E: Conflicting values set for option Signed-By regarding source https://packages.cloud.google.com/apt/ cloud-sdk: /usr/share/keyrings/cloud.google.gpg != 
E: …
Run Code Online (Sandbox Code Playgroud)

unix unixodbc apt-get google-cloud-sdk ubuntu-18.04

12
推荐指数
2
解决办法
3243
查看次数