2017-08-24 57 views
1

我想连接到我的sql服务器数据库,但它不工作。MAC OSX - 如何解决“无法SQLConnect”错误

的freetds的工作,看到命令:

tsql -S myserver.database.windows.net -U myuser -P mypassword 

输出:

locale is "C/UTF-8/C/C/C/C" 
locale charset is "UTF-8" 
using default charset "UTF8" 
1> 

但是当我尝试运行isql命令,它返回我的错误。

命令:

isql -v MYSERVER myuser mypassword 

输出:

[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified 
[ISQL]ERROR: Could not SQLConnect 

我的文件:

freetds.conf:

# $Id: freetds.conf,v 1.12 2007-12-25 06:02:36 jklowden Exp $ 
# 
# This file is installed by FreeTDS if no file by the same 
# name is found in the installation directory. 
# 
# For information about the layout of this file and its settings, 
# see the freetds.conf manpage "man freetds.conf". 

# Global settings are overridden by those in a database 
# server specific section 
[global] 
    # TDS protocol version 
    tds version = 8.0 

    # Whether to write a TDSDUMP file for diagnostic purposes 
    # (setting this to /tmp is insecure on a multi-user system) 
; dump file = /tmp/freetds.log 
; debug flags = 0xffff 

    # Command and connection timeouts 
; timeout = 10 
; connect timeout = 10 

    # If you get out-of-memory errors, it may mean that your client 
    # is trying to allocate a huge buffer for a TEXT field. 
    # Try setting 'text size' to a more reasonable limit 
    text size = 64512 

    # If you experience TLS handshake errors and are using openssl, 
    # try adjusting the cipher list (don't surround in double or single quotes) 
    # openssl ciphers = HIGH:!SSLv2:!aNULL:-DH 

[MYSERVER] 
    host = myserver.database.windows.net 
    port = 1433 
    tds version = 8.0 
    client charset = UTF8 

ODBCINST。 INI:

[FreeTDS] 
Description = FreeTDS 
Driver  = /usr/local/lib/libtdsodbc.so 
Setup  = /usr/local/lib/libtdsodbc.so 
UsageCount = 1 
Trace  = Yes 
TraceFile = /Users/giorgecaique/Documents/sql.log 

ODBC.INI:

[MYSERVER] 
Description = MYSERVER 
Driver  = FreeTDS 
Database = mydatabase 
Server  = myserver.database.windows.net 
UserName = myuser 
Password = mypassword 
TDS_Version = 8.0 

谁能帮助我?我已经看了很多关于如何解决这个问题的教程,但没有一个适合我。

回答

0

odbc.ini文件中,您需要一个Servername属性,它指向freetds.conf中的DSN的名称。此外,8.0不是有效版本(长篇故事,请参阅文档),它是UTF-8而不是UTF8。例如:

freetds.conf

[MYSERVER] 
    host = myserver.database.windows.net 
    port = 1433 
    tds version = 7.1 
    client charset = UTF-8 

然后在odbc.ini

[MYSERVER] 
Description = MYSERVER 
Driver  = FreeTDS 
Database = mydatabase 
Servername = MYSERVER 
UserName = myuser 
Password = mypassword 
TDS_Version = 7.1 

祝你好运!

+0

谢谢您的回复,但它仍然没有工作。 “无法SQLConnect”错误仍然存​​在。 –

0

你有没有检查过你有图书馆/usr/local/lib/libtdsodbc.so

我遇到了类似的错误。我按照本指南解决了我的错误link

我相信你可能没有安装为freetds驱动程序,您可以通过Homebrew与安装: $ brew install freetds --with-unixodbc