标签: unixodbc

从linux上的php连接到MS Access远程.mdb文件

我一直在挖网上几天,阅读非常古老的信息,这导致了很老的和不存在的网站,我理解,仍然需要达到我的目标.

  1. 我们在运行WindowsXP的服务器上有一个file.mdb,所以我需要将它添加到ODBC数据源.我这样做的步骤很简单,最后是"System DSN",允许访问该.mdb文件
  2. 我需要在同一台服务器上安装某种ODBC桥,这将允许我创建与此服务器的远程连接,使该桥连接到服务器ODBC DSN,并查询我的东西(找不到任何免费的ODBC桥)
  3. 在UNIX(FreeBSD)机器上,我需要安装unixODBC和php5-odbc软件包,启用与ODBC的连接(已安装)
  4. 要连接到远程ODBC并使用MS Access数据库驱动程序,我需要在.so文件中有unixODBC这样的驱动程序,它位于UNIX机器内(找不到任何免费的MS Access驱动程序)
  5. 使用PHP odbc_connect(DSN,用户,密码)连接到该服务器,在DSN中我需要提供一些连接信息和驱动程序,我需要使用它(MS Access驱动程序).

纠正我,如果我弄错了,请给我更多建议,如何实现这样的联系.

php ms-access odbc jet unixodbc

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

将Redhat连接到SQL Server 2008以获取Ruby on Rails

我正在尝试将Redhat Linux连接到Microsoft SQL Server 2008.我已经在Windows(我的测试机器)上设置它时遇到了麻烦,但现在我需要将它部署在将要投入生产的Linux机器上.

所以我已经安装了unixODBC和FreeTDS(需要付出很多努力,甚至不确定它是否安装正确:S),结果是我有3个文件/usr/local/etc:

odbc.ini
odbcinst.ini
freetds.conf
Run Code Online (Sandbox Code Playgroud)

然后我编辑了freetds.conf文件,这是我添加的内容:

[sqlServer]
host = servername
port = 4113
instance = sqlServer
tds version = 8.0
client charset = UTF-8
Run Code Online (Sandbox Code Playgroud)

我必须从我的DBA中找到端口号,因为它在SQL Server 2008中设置为动态.

我的odbcinst.ini文件看起来像这样:

[FreeTDS]
Description     = TDS driver (Sybase/MS SQL)
Driver          = /usr/local/lib/libtdsodbc.so
Setup           = /usr/local/lib/libtdsS.so
CPTimeout       =
CPReuse         =
FileUsage       = 1
Run Code Online (Sandbox Code Playgroud)

我的odbc.ini文件看起来像这样:

[sqlServer]
Driver = FreeTDS
Description     = ODBC connection via FreeTDS
Trace           = 1
Servername      = sqlServer
Database        = RubyApp …
Run Code Online (Sandbox Code Playgroud)

redhat unixodbc freetds sql-server-2008 ruby-on-rails-3

5
推荐指数
1
解决办法
4780
查看次数

如何使用freeTDS和unixODBC配置pyodbc以正确接受来自SQL Server的字符串?

我无法从MSSQL服务器获取有效的字符串到python.我相信在某处存在编码不匹配.我相信它是在ODBC层和python之间,因为我能够在tsql和isql中获得可读的结果.

pyodbc期望什么字符编码?我需要在链中进行哪些更改才能使其正常工作?

具体例子

这是一个简化的python脚本作为示例:

#!/usr/bin/env python
import pyodbc

dsn = 'yourdb'
user = 'import'
password = 'get0lddata'
database = 'YourDb'

def get_cursor():
    con_string = 'DSN=%s;UID=%s;PWD=%s;DATABASE=%s;' % (dsn, user, password, database)
    conn = pyodbc.connect(con_string)
    return conn.cursor()

if __name__ == '__main__':
    c = get_cursor()
    c.execute("select id, name from recipe where id = 4140567")

    row = c.fetchone()
    if row:
        print row
Run Code Online (Sandbox Code Playgroud)

该脚本的输出是:

(Decimal('4140567'), u'\U0072006f\U006e0061\U00650067')
Run Code Online (Sandbox Code Playgroud)

或者,如果脚本的最后一行更改为:

print "{0}, '{1}'".format(row.id, row.name)
Run Code Online (Sandbox Code Playgroud)

然后结果是:

Traceback (most recent call last):
  File "/home/mdenson/projects/test.py", line 20, in <module>
    print "{0}, …
Run Code Online (Sandbox Code Playgroud)

unicode unixodbc pyodbc freetds sql-server-2008

5
推荐指数
1
解决办法
7116
查看次数

使用freetds,unixodbc和python连接到MS SQL数据库

我在32位计算机上运行Ubuntu 12.04,我想使用freetds,unixodbc和python连接到我的MS SQL数据库,但是我收到一个错误:

>>> import pyodbc
>>> conn = pyodbc.connect('DSN=TS;UID=myusername;PWD=mypassword')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
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)

这是我的/etc/freetds.conf档案:

[TS]
host = 192.168.254.50
port = 1433
tds version = 7.0
client charset = UTF-8
Run Code Online (Sandbox Code Playgroud)

这是我的/etc/odbc.ini档案:

--- /etc/odbc.ini ---
[TS]
Description = "test"
Driver = FreeTDS
Server = 192.168.254.50
Port = 1433
Database = db_name
Run Code Online (Sandbox Code Playgroud)

这是我的/etc/odbcinst.ini档案: …

python sql-server unixodbc freetds ubuntu-12.04

5
推荐指数
0
解决办法
870
查看次数

配置pdo_odbc需要/ usr/local /中的文件,但没有文件

我正在尝试在我的在线服务器上设置pdo_odbc.我使用putty,我在Linux命令方面有一些基本知识.

一开始,在我的在线服务器上,我没有安装PDO.我找到了安装它的方法,它的工作原理.然后我必须安装pdo_odbc,但我迷路了.安装pdo_mysql非常简单,没有问题.使用pdo_mysql我连接了一些mysql数据库.

但对于pdo_odbc,我陷入困境.A已将自己定位到带有pdo_odbc安装文件的文件夹中,我已运行phpize,然后运行命令

./configure --with-pdo-odbc = unixODBC

然后它告诉我,我需要将18个文件的列表包含在文件夹/ usr/local/include /中,但该文件夹中没有文件.

我的问题是我如何找到(如果我能找到)这些文件所在的位置,或者我需要做什么才能在我的服务器上安装这些文件.

这就是我得到的:

checking for odbc.h in /usr/local/include... no 
checking for odbcsdk.h in /usr/local/include... no 
checking for iodbc.h in /usr/local/include... no 
checking for sqlunix.h in /usr/local/include... no 
checking for sqltypes.h in /usr/local/include... no 
checking for sqlucode.h in /usr/local/include... no 
checking for sql.h in /usr/local/include... no 
checking for isql.h in /usr/local/include... no 
checking for sqlext.h in /usr/local/include... no 
checking for isqlext.h in /usr/local/include... no 
checking for udbcext.h in /usr/local/include... no 
checking for …
Run Code Online (Sandbox Code Playgroud)

php pdo putty unixodbc

5
推荐指数
1
解决办法
3563
查看次数

Asterisk无法使用odbc连接器连接到数据库

我是Asterisk的新手,这是我第一次尝试连接数据库(MySQL).但我一直收到此错误[unixODBC] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序.这是我的设置:

/etc/odbcinst.int

[Default]
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/x86_64-linux-gnu/odbc/libmyodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libodbcmyS.so
FileUsage       = 1
;UsageCount = 2
Run Code Online (Sandbox Code Playgroud)

/etc/odbc.ini

[MYSQL-DNS]
Driver =MySQL
Description = MySQL connection to ‘My Voice’ database
Trace = Yes
TraceFile = /tmp/odbc.log
Server =localhost
Port =3306
Database =my_database
UserName =myuser
Password =mypass
Option = 3
Socket =/var/run/mysqld/mysqld.sock
Run Code Online (Sandbox Code Playgroud)

/var/lib/asterisk/.profile

export ODBCINI=/etc/odbc.ini
export ODBCSYSINI=/etc
Run Code Online (Sandbox Code Playgroud)

我还将odbcinst.ini和odbc.ini分别复制到〜/ .odbcinst.ini和〜/ .odbc.ini,并复制到/ var/lib/asterisk /只是为了清除所有疑问.

res_odbc.conf

[ENV]

[my_database]
enabled => yes
dsn =>MYSQL-DNS
username => …
Run Code Online (Sandbox Code Playgroud)

mysql odbc database-connection asterisk unixodbc

5
推荐指数
1
解决办法
8583
查看次数

在Sails应用程序中运行npm install odbc会产生错误?

我想在我的Sails应用程序中安装node-odbc软件包(https://github.com/wankdanker/node-odbc).

根据我在服务器上安装和配置unixobdc的文档,但是当我在app目录中执行npm install odbc --save时,我收到以下错误:

错误的ERR!Linux 3.19.0-58-generic npm ERR!argv"/ usr/bin/nodejs""/ usr/bin/npm""install""odbc""--save"npm ERR!节点v4.4.3 npm ERR!npm v3.8.7

错误的ERR!无法设置未定义的npm ERR属性'waterline-criteria'!错误的ERR!如果您需要帮助,可以在以下位置报告此错误:npm ERR!*LINK {// github.com/npm/npm/issues} npm ERR!Linux 3.19.0-58-generic npm ERR!argv"/ usr/bin/nodejs""/ usr/bin/npm""install""odbc""--save"npm ERR!节点v4.4.3 npm ERR!npm v3.8.7

错误的ERR!无法设置未定义的npm ERR属性'waterline-cursor'!错误的ERR!如果您需要帮助,可以在以下位置报告此错误:npm ERR!*LINK {// github.com/npm/npm/issues} npm ERR!Linux 3.19.0-58-generic npm ERR!argv"/ usr/bin/nodejs""/ usr/bin/npm""install""odbc""--save"npm ERR!节点v4.4.3 npm ERR!npm v3.8.7

错误的ERR!无法设置未定义的npm ERR属性'waterline-errors'!错误的ERR!如果您需要帮助,可以在以下位置报告此错误:npm ERR!*LINK {// github.com/npm/npm/issues}

错误的ERR!请在任何支持请求中包含以下文件:npm ERR!/var/www/sails.dev/secApp/npm-debug.log

关于为什么会这样或者如何让这个包在Sails中运行的任何想法?

unixodbc sails.js node-odbc

5
推荐指数
1
解决办法
169
查看次数

无法通过 unixODBC 连接到 Snowflake。错误:[S1000][unixODBC][Snowflake][ODBC] (11560) 无法找到 SQLGetPrivateProfileString 函数

我已按照此处的说明安装/配置了驱动程序:

https://docs.snowflake.net/manuals/user-guide/odbc-linux.html#installing-and-configuring-the-odbc-driver-for-linux

出现错误:[S1000][unixODBC][Snowflake][ODBC] (11560) 无法找到 SQLGetPrivateProfileString 函数。

我发现一篇文章说要安装并使用另一个驱动程序(libodbcinst.so.2),但这也不起作用。

我使用的是 Ubuntu 18.04

这是调试:

$ isql -v snowflake_dev my_username my_password
2020-01-02T20:48:43.123 INFO  4442 Snowflake::Client::IFileTransferAgent.cpp::: External logger injected. libsnowflakeclient version: 0.4.2
Jan 02 20:48:43 INFO  2785285952 SharedSingletonManager::LogVersions: SDK Version: 10.01.15.1109
Jan 02 20:48:43 INFO  2785285952 SharedSingletonManager::LogVersions: DSII Version: 2.20.2
Jan 02 20:48:43 INFO  2785285952 Driver::Initialize: Database CHAR Encoding: UTF-8
Jan 02 20:48:43 INFO  2785285952 Driver::Initialize: Database WCHAR Encoding: UTF-32LE
Jan 02 20:48:43 INFO  2785285952 Driver::Initialize: Driver ANSI CHAR Encoding: UTF-8
Jan 02 20:48:43 …
Run Code Online (Sandbox Code Playgroud)

unixodbc snowflake-cloud-data-platform ubuntu-18.04

5
推荐指数
1
解决办法
3225
查看次数

无法打开 lib '/usr/local/lib/libmsodbcsql.13.dylib':找不到文件 - 但文件存在

我正在尝试在 macOS 10.15.4 下使用 pyodbc 和 unixODBC 从 Jupyter 笔记本连接到 MSSQL 服务器。我刚刚将 OSX 升级到 Catalina,之前的工作配置已损坏。

我尝试连接:

pyodbc.connect('Driver={ODBC Driver 13 for SQL Server};Server=xxx;Database=xxx;uid=xxx;pwd=xxx;')
Run Code Online (Sandbox Code Playgroud)

这会引发错误:

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib '/usr/local/lib/libmsodbcsql.13.dylib' : file not found (0) (SQLDriverConnect)")
Run Code Online (Sandbox Code Playgroud)

但该文件存在,并且由 obdcinst.ini 中的驱动程序指向,并且链接似乎正确。

为了跟踪这一点,我运行:

$ odbcinst -j

unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /Users/johnmorgan/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Run Code Online (Sandbox Code Playgroud)

驱动文件存在,如下:

$ more /etc/odbcinst.ini

[ODBC Driver 13 for SQL Server]
Description=Microsoft …
Run Code Online (Sandbox Code Playgroud)

python unixodbc pyodbc macos-catalina

5
推荐指数
1
解决办法
6051
查看次数

unixODBC Amazon Redshift 问题(无法打开 lib '/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so':找不到文件)

我正在尝试设置 unixODBC 来访问 Amazon Redshift,但不断收到此错误,我已经三次检查了我的设置,但不确定问题是什么

> isql -v mlaws
[01000][unixODBC][Driver Manager]Can't open lib '/opt/amazon/redshiftodbc/lib/64/libamazonredshiftodbc64.so' : file not found
[ISQL]ERROR: Could not SQLConnect
Run Code Online (Sandbox Code Playgroud)

以下是我的文件和详细.odbc.ini信息odbcinst.ini

我当前的odbcinst -j设置是

unixODBC 2.3.4
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/fuxi/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
Run Code Online (Sandbox Code Playgroud)

我的odbcinst.ini文件有适当的 Redshift 驱动程序,

[PostgreSQL ANSI]
Description=PostgreSQL ODBC driver (ANSI version)
Driver=psqlodbca.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1

[PostgreSQL Unicode]
Description=PostgreSQL ODBC driver (Unicode version)
Driver=psqlodbcw.so …
Run Code Online (Sandbox Code Playgroud)

unixodbc amazon-redshift

5
推荐指数
0
解决办法
2149
查看次数