MyODBC unter Linux mit Oracle und mysql

Djunix

Mitglied
Hallo,
jetzt sind mal die Experten gefragt, ich steh momentan vor folgendem Problem:

Ich soll einen Datenbanklink von Oracle auf mysql einrichten, also so das ich quasi über die Oracledatenbank auch auf die mysql-datenbank zugreifen kann.
Ich hab hier unter Tutorials.de auch schon eine Anleitung dazu gefunden, allerdings ist die für Linux(Oracle) nach Windows (mysql).
Ich habe allerdings ein SUSE-System auf dem einmal eine Oracledatenbank und einmal eine mysqldatenbank läuft.
Mein Hauptproblem ist es, das ich die ODBC-Schnittstelle nicht vernünftig konfiguriert bekomme, die anderen sachen mit den einträgen in tnsnames.ora, listener.ora und so hab ich schon gemacht. Hab schon versucht mit dem Programm qtodbctest die Verbindung zu testen, das hat aber nicht geklappt (Data Soruce Name not found and no default driver specified).
Meine Frage ist jetzt im Prinzip, wie ich den ODBC-Treiber richtig konfiguriere.

PS: Unter Windows konnte man den DSN glaub ich ganz einfach adden (Verwaltung->Datenquellen ODBC), aber unter SUSE scheint das alles ein bisschen komplizierter zu sein.

Würd mich freuen wenn da jemand ne Lösung oder ne gute Beschreibung für hätte.

mfg
Daniel
 
Hallo, bin jetzt schon ein kleines stück weiter, hab den datenbanklink uns so weiter angelegt, aber wenn ich jetzt von SQLPlus aus ne abfrage starte:
Code:
select * from "mysql_tabelle"@myodbc;

Bekomm ich die Fehlermeldung:
Code:
ORA-00942: table or view does not exist
[Generic Connectivity Using ODBC][ODBC 3.51 Driver][mysqld-4.0.18]No
Database Selected (SQL State: 3D000; SQL Code: 1046)
ORA-02063: preceding 2 lines from MYODBC


Also der datenbanklink scheint zu funktionieren, sonst würd der fehler wahrscheinlich anders aussehen. Und die Tabelle gibt es auch.

Kann mir da jemand weiterhelfen, woran das liegen könnte?
 
Dein Fehler liegt nicht etwa in der Tabelle sondern hier:

Bekomm ich die Fehlermeldung:
Code:
ORA-00942: table or view does not exist
[Generic Connectivity Using ODBC][ODBC 3.51 Driver][mysqld-4.0.18]No
Database Selected (SQL State: 3D000; SQL Code: 1046)
ORA-02063: preceding 2 lines from MYODBC

Es fehlt einfach nur die Auswahl der mySQL Datenbank die genutzt werden soll.
Da du mit einem Oracle Database Link kein Statement absetzen kannst um die DB auszuwählen, musst du diese leider fest in die myODBC Konfiguration für die DSN eintragen, glaub ich?!

p.s. Wer hätte gedacht dass jemals jemand mein Tutorial wirklich braucht und dann auch findet, cool !;-)
 
Mir kommt es eher so vor, als wenn die Berechtigungen nicht richtig gesetzt sind. Bei Anlage des DB-Links hast du ja definiert, mit welchem Benutzernamen die Oracle-DB an MySQL connecten soll. Hat dieser Benutzer wirklich die Berechtigung, die Tabelle zu sehen?
 
Ja also erstmal danke für die Tipps, ich glaub ich gib am besten mal einen kleinen überblick über die aktuelle Situation:
Ich habe ja im ersten Post geschrieben das ich das von linux nach linux machen will, da ich das aber nicht hinbekommen habe, hab ich das erstmal von linux (hier liegt oracle) nach windows (mysql) probiert. Herausgekommen ist das was im zweiten Post steht.
Auf der Windows Maschine läuft eine Datenbank mit dem Namen "myodbc". Hier für hab ich unter Systemsteuerung->Verwaltung->Datenquellen(ODBC) einen User DSN Eintrag gemacht, wo die Verbindungsdaten zur mysqldatenbank definiert sind. Wenn ich bei dem Eintrag auf "Test" klicke sagt er mir auch das er eine Verbindung herstellen konnte.
Auf dem Linux-System habe ich die nötigen Einträge in der TNSNAMES.ORA und in der LISTENER.ORA gemacht. In der odbc.ini hab ich folgendes stehen:
Code:
[ODBC Data Sources]
myodbc          = MyODBC 3.51 Driver DSN

[myodbc]
Driver              = /usr/local/lib/libmyodbc3.so
Description      = MyODBC Driver
Server             = 192.168.1.152 
Port                = 3306
User               = root
Password        = 123456
Database    = myodbc
Option             = 0
Socket            =

Die Datenbank müsste also normalerweise ausgewählt sein.
Und die Berechtigung für die mysql-datenbank hab ich unter Windows über den MySQL-Administrator gesetzt. Und zwar so, das man sich vom Host wo die Oracle-Datenbank liegt über root connecten kann.

Ich hoffe das hilft euch weiter, weil ich bin hier im moment echt am verzweifeln.
 
So, ich habs jetzt doch geschafft, es lag anscheinend daran das der die falsche odbc.ini verwendet hat. danach hab ich es auch nochmal von Linux nach Linux probiert, und siehe da, auch hier klappt es. ;-)
Ich bedanke mich recht herzlich für eure Hilfe.
 
Zurück