在Linux上pyodbc连接失败

0 投票
1 回答
1658 浏览
提问于 2025-04-18 08:48

我正在尝试使用pyodbc连接到一个数据库,这段代码在Windows上运行得很好,但在Linux上运行时出现了错误。有没有人能告诉我这里出了什么问题,以及怎么解决呢?

import pypyodbc as pyodbc
component_id=argv[1]
print "COMPONENT ID: " + component_id
server_name='odsdb.company.com'
database_name='ODS'
cnx = pyodbc.connect("DRIVER={SQL Server};SERVER="+server_name+";DATABASE="+database_name)
db_cursor=cnx.cursor()

vi /etc/odbcinst.ini

[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
Setup           = libodbcpsqlS.so
Debug           = 0
CommLog         = 1
UsageCount              = 1

错误信息:

  File "build_ver.py", line 11, in <module>
    cnx = pyodbc.connect("DRIVER={SQL Server};SERVER="+server_name+";DATABASE="+database_name)
  File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 2434, in __init__
  File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 2483, in connect
  File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 988, in check_success
  File "/usr/local/lib/python2.7/dist-packages/pypyodbc.py", line 964, in ctrl_err
pypyodbc.Error: (u'IM002', u'[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified')

1 个回答

0

输入命令 sudo gedit /etc/postgresql/9.3/main/postgresql.conf 来打开一个配置文件。

找到 listen_addresses 这一行,把它前面的注释去掉,然后把 localhost 改成 *

接下来:

`sudo gedit /etc/postgresql/9.3/main/pg_hba.conf` 

把这一行中的 127.0.0.1/32 改成 0.0.0.0/0

 `host    all             all             127.0.0.1/32            trust`

撰写回答