在Linux上pyodbc连接失败
我正在尝试使用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`