【问题标题】:Getting error while connecting to database with freetds and odbc connection使用 freetds 和 odbc 连接连接到数据库时出错
【发布时间】:2015-01-15 05:03:45
【问题描述】:

数据库设置

DATABASES= {
    'default': {
    'ENGINE': 'sql_server.pyodbc',
    #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    #'ENGINE': 'django.db.backends.sqlite3',
    'NAME': 's',
    'USER': 'test',
    'PASSWORD': 'test',
    'HOST': '*******',
    'OPTIONS':{
        'DRIVER' : 'FreeTDS',
        'DSN' : 'sqlserver',
     },
    },  
}

freetds.conf

[sqlserver] 
host = *******
port = 1433
tds version = 8.0
client charset = UTF-8

etc/odbc.ini

[FreeTDS] 
Description = FreeTDS 
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
#Driver = /usr/local/lib/libtdsodbc.so 
#Setup = /usr/local/lib/libtdsS.so 
FileUsage = 1 
CPTimeout = 
CPResuse  = 
client charset = utf-8 

[sqlserver] 
Description = "test" 
Driver = FreeTDS 
#Servername = sqlserver 
Server = *******
Port = 1433 
Database =s 
Trace = No

etc/odbcinst.ini

[FreeTDS]

Description=FreeTDS 
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
#Driver=/usr/local/lib/libtdsodbc.so 
#Setup=/usr/lib/odbc/libtdsS.so 
DRIVER=FreeTDS 
SERVER=*******
PORT=1433 
DATABASE=s
UID=test 
PWD=test 
tds_version=7.2

[sqlserver]

Description=FreeTDS
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
#Driver=/usr/local/lib/libtdsodbc.so 
#Setup=/usr/lib/odbc/libtdsS.so 
#DRIVER=sqlserver 
SERVER=*******
PORT=1433 
DATABASE=s
UID=test 
PWD=test 
TDS_Version=8.0

usr/local/etc/odbc.ini

[FreeTDS] 
Driver=/usr/local/lib/libtdsodbc.so 
Servername=sqlserver
Description=FreeTDS SQL Server ODBC driver 
Server=******* 
Port=1433 
Database=s
User=test 
Password=test 
Mars_Connection=No 
Logging=No  
LogFile= 
QuotedId=Yes 
AnsiNPW=Yes 
Language= 
Version7=No 
ClientLB=No 
Encrypt=Yes 
TrustServerCertificate=No 
PrivateKeyFile= 
CertificateFile= 
Entropy= 
Failover_Partner= 
VarMaxAsLong=No 
DisguiseWide=No 
DisguiseLong=No 
DisguiseGuid=No 
Trusted_Connection=No 
Trusted_Domain= 
tds_version = 8.0 

[sqlserver] 
Driver=/usr/local/lib/libtdsodbc.so 
Servername=sqlserver
Description=FreeTDS SQL Server ODBC driver 
Server=******* 
Port=1433 
Database=s
User=test 
Password=test 
Mars_Connection=No 
Logging=No 
LogFile= 
QuotedId=Yes 
AnsiNPW=Yes 
Language= 
Version7=No 
ClientLB=No 
Encrypt=Yes  
TrustServerCertificate=No 
PrivateKeyFile= 
CertificateFile= 
Entropy= 
Failover_Partner= 
VarMaxAsLong=No  
DisguiseWide=No 
DisguiseLong=No 
DisguiseGuid=No 
Trusted_Connection=No 
Trusted_Domain=

usr/local/etc/odbcinst.ini

[FreeTDS] 
Description=FreeTDS Driver 
#Driver=/usr/local/lib/libtdsodbc.so 
#Setup=/usr/lib/odbc/libtdsS.so 
Driver = /usr/lib/i386-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/i386-linux-gnu/odbc/libtdsS.so
DRIVER=FreeTDS 
SERVER=*******
PORT=1433 
DATABASE=s
UID=test 
PWD=test 
tds_version=7.2
CPTimeout=
FileUsuage=1

[sqlserver] 
Description=FreeTDS Driver 
Driver=/usr/local/lib/libtdsodbc.so 
#Setup=/usr/lib/odbc/libtdsS.so  
#DRIVER=SQLServer 
SERVER=*******  
PORT=1433 
DATABASE=s
UID=test 
PWD=test 
TDS_Version=8.0

错误(错误页面)

conn = Database.connect(connstr, unicode_results=unicode_results)
django.db.utils.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

这是我的数据库连接,我将附加 odbc 连接。请帮助我纠正错误并连接到工作。提前致谢

【问题讨论】:

  • -1(如果可以的话,还有更多)用于发布代码截图。这是文本,看在上帝的份上:这就是我们剪切和粘贴的原因。
  • 我解决了这个错误。现在它工作正常。谢谢

标签: django odbc unixodbc


【解决方案1】:

您需要在 settings.py 文件中的数据库设置下定义您的数据源名称。

DATABASES={
   'default': {
      'OPTIONS':{
         'DRIVER':'FreeTDS',
         'DSN': 'YOUR DSN NAME'
      },
    },
}

【讨论】:

  • 错误 20012(严重性 2):在配置文件中找不到服务器名称。语言环境为“en_US.UTF-8” 语言环境字符集为“UTF-8”,使用默认字符集“UTF-8” 错误 20013(严重性 2):未知主机名。连接到服务器时出现问题,我收到此错误。请帮我纠正错误。提前致谢。
猜你喜欢
  • 2018-10-04
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-28
相关资源
最近更新 更多