我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) 我正在尝试使用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地址和端口.关于什么可能是问题的任何想法,以及它是否在服务器端?
我试图从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世界的新手,我想从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",文件确实存在!
那为什么它告诉我它不存在?以下是一些可能的线索:
我不知道如何解决这些问题.
谢谢 !
我正在使用最新的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表明我没有它.
所以我的问题是:它在哪里?安装出了什么问题(虽然没有报告错误)?你推荐什么步骤?重新安装?从源代码编译(最新版本?)?
我在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.ini和odbcinst.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) 我在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) 我在将Ruby连接到Microsoft SQL Server时遇到了麻烦.我正在运行Mac OS X,但目标环境是Ubuntu Linux.
这是我尝试过的:
然后我将这些文件放在/usr/local/etc:
odbc.iniodbcinst.inifreetds.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) 我正在使用以下命令在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) unixodbc ×10
freetds ×3
linux ×3
odbc ×3
pyodbc ×3
sql-server ×3
unix ×2
apt-get ×1
c ×1
header-files ×1
iodbc ×1
oracle ×1
oracleclient ×1
php ×1
postgresql ×1
python ×1
python-2.7 ×1
r ×1
rodbc ×1
ruby ×1
ubuntu ×1
ubuntu-18.04 ×1