Überprüfen Sie /etc/odbcinst.ini, /etc/odbc.ini, ~ / .odbc.ini und $ ODBCINI, um festzustellen, welche Rechte zugewiesen sind. Ich bin der Meinung, dass der Benutzer, der den Befehl ausführt, möglicherweise keine Rechte für eine dieser Dateien hat oder die Datenquelle nicht definiert ist, wenn er unter einem anderen Benutzer erstellt wurde.
Aus häufig auftretenden Fehlermeldungen und Was ist eine odbc.ini und was füge ich ein? Überprüfen Sie außerdem /etc/odbc.ini und ~ / .odbc.ini des Benutzers, dem Sie den DSN hinzugefügt haben, sowie den Benutzer, unter dem Sie ausgeführt werden. Wenn diese gleich sind, müssen Sie dies nur einmal tun.
Häufige Fehlermeldungen
[iODBC] [Treibermanager] Der Name der Datenquelle wurde nicht gefunden und es wurde kein Standardtreiber angegeben. Treiber konnte nicht geladen werden, SQLSTATE = IM002
Diese Meldung kann aus mehreren Gründen auftreten. Die beste Lösung besteht darin, durchzugehen, was passiert: Ihre Anwendung wurde mit libiodbc verknüpft, das versucht, eine odbc.ini-Datei auf die eine oder andere Weise zu finden - entweder über die Umgebungsvariable ODBCINI oder über die Fall-Back-Pfade (normalerweise / etc / odbc.ini, abhängig davon, wie es kompiliert wurde). Sie sollten prüfen, ob eine solche Datei an einem geeigneten Ort vorhanden ist und darauf zugegriffen werden kann (insbesondere, wenn Ihre Anwendung mit unterschiedlichen Benutzerrechten ausgeführt wird, z. B. apache / php als www-data-Benutzer).
Außerdem kann es vorkommen, dass iODBC eine geeignete odbc.ini-Datei gefunden hat, aber keine der gefundenen Dateien enthält den angeforderten DSN. Überprüfen Sie die Syntax Ihrer Anfrage. Ist die ODBC-Verbindungszeichenfolge korrekt und ist der von Ihnen angeforderte DSN vorhanden? Siehe auch den Abschnitt "Was ist ein odbc.ini und was muss ich einfügen?".
Was ist ein Odbc.ini?
Eine odbc.ini ist die Hauptkonfigurationsdatei, in der alle Ihre DSNs und ein Großteil der ODBC-Konfigurationsparameter gespeichert sind. iODBC verfügt über einen Suchpfad zum Auffinden einer solchen Konfigurationsdatei: Zuerst wird die Umgebungsvariable ODBCINI geprüft, um zu sehen, ob sie auf eine geeignete Datei verweist, oder ~ / .odbc.ini (analog zu Benutzer-DSNs unter Windows) und dann / etc / odbc.ini ("systemweit") sind Rückfallorte.
Die Datei odbc.ini besteht aus 3 Teilen: einem Satz von ODBC-Optionen, einer Liste von DSNs und dann den Definitionen der Datenquelle selbst:
[ODBC Data Sources] PostgreSQL native localhost = PostgreSQL native driver PostgreSQL OpenLink localhost = PostgreSQL over OpenLink multi-tier [PostgreSQL native localhost] Driver = /usr/lib/postgresql/lib/libodbcpsql.so Host = localhost Server = localhost ServerName = localhost Database = tim UserName = tim UID = tim Port = 5432 [PostgreSQL OpenLink localhost] Description = PostgreSQL, over openlink MT Driver = /opt/openlink/lib/oplodbc.so ServerType = PostgreSQL95 Host = localhost Database = tim Username = tim LastUser = tim User = tim FetchBufferSize = 99 [ODBC] ;Trace = 1 ;TraceFile = /tmp/odbctrace.log ;Debug = 1 ;DebugFile = /tmp/odbcdebug.log
Die Liste der ODBC-Datenquellen korreliert mit der Datei odbcinst.ini (oder der Umgebungsvariablen ODBCINSTINI): Für jeden als Beschreibung des Treibers verwendeten Wert sollte ein entsprechender Abschnitt in der Datei odbcinst.ini vorhanden sein, in dem sowohl die Treiber- als auch die Setup-Bibliothek aufgeführt sind (zur Unterstützung) mit grafischer Konfiguration unter Verwendung von iodbcadm-gtk und auch zur Anzeige eines Eingabefelds, wenn zum Verbindungszeitpunkt unzureichende Optionen angezeigt werden.
Die Liste der Attribute ist vom Treiber abhängig, wie oben gezeigt: Der native Postgresql-Treiber ruft sie von Openlink Multi-Tier ab, daher müssen Sie die Treiberdokumentation nachlesen.
Vorausgesetzt, Sie haben iODBC heruntergeladen / installiert / kompiliert, verfügen Sie auch über eine GTK-basierte Benutzeroberfläche zum Konfigurieren Ihrer ODBC-DSNs: Führen Sie iodbcadm-gtk aus.