2017-08-24 2 views
1

Ich versuche, eine Verbindung zu meinem SQL-Server-Datenbank, aber es funktioniert nicht.MAC OSX - Wie zu lösen "Konnte nicht SQLConnect" Fehler

Die freetds funktioniert, wird das Kommando:

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

Ausgang:

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

aber wenn ich versuche, den Befehl isql zu laufen, es gibt mir eine Fehlermeldung.

Befehl:

isql -v MYSERVER myuser mypassword 

Ausgang:

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

Meine Dateien:

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 

Kann mir jemand helfen? Ich habe schon viele Tutorials gesehen, wie man das lösen kann, aber nichts davon hat für mich funktioniert.

Antwort

0

In der Datei odbc.ini benötigen Sie ein Servername Attribut, das auf den Namen des DSN in freetds.conf zeigt. Auch 8.0 ist keine gültige Version (lange Geschichte, siehe die Dokumente), und es ist UTF-8 nicht UTF8. Zum Beispiel:

freetds.conf:

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

Und dann in odbc.ini:

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

Viel Glück!

+0

Vielen Dank für Ihre Antwort, aber es funktioniert immer noch nicht. Der Fehler "Konnte SQLConnect nicht bestehen" bleibt bestehen. –

0

Haben Sie überprüft, ob Sie die Bibliothek /usr/local/lib/libtdsodbc.so haben?

Ich lief in einen ähnlichen Fehler. Ich habe meinen Fehler nach dieser Anleitung unter link behoben.

Ich glaube, Sie können nicht die für freetds Treiber installiert haben, die Sie über Homebrew mit installieren: $ brew install freetds --with-unixodbc

Verwandte Themen