MySQL & PB unter Linux für Windows-Umsteiger

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
Benutzeravatar
blbltheworm
Beiträge: 217
Registriert: 22.09.2004 19:36
Wohnort: Auf der schönen Schwäbischen Alb

MySQL & PB unter Linux für Windows-Umsteiger

Beitrag von blbltheworm »

Hallo zusammen,
ich bin im Moment dabei nach und nach von Windows nach Linux (Kubuntu 8.04/hardy) umzusteigen.
Unter Windows hatte ich eine kleine Access-Datenbank mit Adressen und Zeugs + einem PB-Frontend am laufen. Das versuche ich im Moment nach Linux zu portieren.

Ich hab PB 4 + alle benötigten Packete installiert (checkinstall.sh ist zufrieden) und es läuft auch (wenn man es mit kdesu aufruft).

Dazu habe ich MySQL nach der Anleitung unter http://www.linux-fuer-blinde.de installiert.
(D.h. die Pakete mysql-client & mysql-server + zusätzlich die Pakete mysql-admin & mysql-client zum Einrichten meiner Datenbank.)
Die Konvertierung Access -> MySQL hat nun soweit auch funktioniert.

Aber Wie greife ich von PB aus auf die Datenbank zu??
D.h. wie verbinde ich mich zum lokalen MySQL-Server.
Ich hab es soweit verstanden, dass ich eine ODCB-Verbinung einrichten muss. Aber wie?

Code: Alles auswählen

UseODBCDatabase()
OpenDatabaseRequester(0)
Ruft ein Fenster auf in dem keine Einträge sind und in dem ich nichts machen kann.

So, jetzt hoff ich meine Ausführung war nicht zu lang.
Ich bin für jede Hilfe dankbar...
Benutzeravatar
bembulak
Beiträge: 228
Registriert: 13.12.2005 16:34
Wohnort: Österreich

Beitrag von bembulak »

Naja, wie unter Windows auch, musst du eine ODBC-Verbindung mit deiner Datenbank herstellen, um diese mit der PB-ODBC-Schnittstelle nutzen zu können.

Ich weiß zwar, dass es unter Windows auch "on-the-fly" geht, aber bei Linux weiß ich es ehrlich gesagt nicht, wie man das bewerkstelligt.
Nur weil der MySQL-Server läuft, heißt das ja nicht, dass er der ODBC-Schnittstelle deines Systems bekannt ist. Vermutlich brauchst du auch noch Pakete für die Verbindung zwischen ODBC und SQL (zumindest unter Windows kann ich mich erinnern, dass ich für MySQL ein extra Paket für ODBC installieren musste).

Du hast also folgende Möglichkeiten:
a) legest per Hand eine ODBC-Verbindung für den Server an.
b) du versuchst, über PB on the fly die Verbindung über ODBC herzustellen.
c) zu versucht, die MySQL.so (ist wie DLL) zu nutzen und verzichtest auf ODBC
d) du nimmst ein anderes Datenbanksystem, z.b. SQLite3, was IMHO für eine kleine Single-User-Adress-DB auch besser ist.
Benutzeravatar
blbltheworm
Beiträge: 217
Registriert: 22.09.2004 19:36
Wohnort: Auf der schönen Schwäbischen Alb

Beitrag von blbltheworm »

Hallo und danke für die Antwort.
Mein Problem ist halt, dass ich keine Ahnung habe wie ich von Hand eine ODBC-Verbindung zum Server anlege.

Aber auf jeden Fall danke für die Tipps, werde mir sqlite mal ansehen.
Benutzeravatar
bembulak
Beiträge: 228
Registriert: 13.12.2005 16:34
Wohnort: Österreich

Beitrag von bembulak »

http://dev.mysql.com/downloads/connector/odbc/5.1.html
http://www.unixodbc.org/

Wobei, wenn ich mir das so ansehe, dann vergiss ODBC einfach unter Linux. Zumindest gibt es keine nennenswerten GUI-Tools die einem das Anlegen erleichtern.
Und PB --> ODBC --> MySQL ist dann doch eher umständlich.

Und wie schon gesagt, stehe ich MySQL für Single-User-Betrieb eher skeptisch gegenüber. Es erschwert auch das Tauschen und Transportieren von Files. Mit SQLite3 bin ich bisher sehr gut gefahren. Ich kann das per Mail versenden, ich kann's auf USB kopieren, usw.

Das geht mit MySQL alles nicht so leicht.

MySQL --> SQLite3 dafür gibt es sicherlich tools. Oder von MSAccess nach SQLite3 geht sicher auch!
Benutzeravatar
mardanny71
Beiträge: 266
Registriert: 05.03.2005 01:15
Wohnort: Thüringen

Beitrag von mardanny71 »

Jo, Du musst den Connector installieren und dann Mysql starten.
Wenn bei Kubuntu Yast mit dabei ist, findest Du den Dienst im Yastmodul Runleveleditor.
Aber Prüfe auf der Konsole erstmal, ob Mysql läuft.(mit Eingabe von mysql startest Du den Clienten)
Dann sollte es eigentlich gehen.
Aber wie von bembulak schon geschrieben, ist SQLite für Deine Zwecke bestimmt besser.

gruss
mardanny71
Gruß, mardanny71
Windows 7 - openSUSE 12.1 - KDE 4.7 - PB4.6 beta 4
Benutzeravatar
bembulak
Beiträge: 228
Registriert: 13.12.2005 16:34
Wohnort: Österreich

Beitrag von bembulak »

Wenn bei Kubuntu Yast mit dabei ist
Sicherlich nicht.

http://de.wikipedia.org/wiki/Yast
http://de.wikipedia.org/wiki/Kubuntu#Kubuntu
PBFetischist
Beiträge: 55
Registriert: 26.10.2004 19:42

Verzwickt aber geht....

Beitrag von PBFetischist »

Hallo...

Nachdem ich Anfangs auch verzweifelt bin, eine ODBC Verbindung zu einer MySQL DB aufzubauen, möchte ich hier eine kleine Anleitung für Ubunutu geben:

Zuerst das Terminal öffnen und folgende Paket installieren:

Code: Alles auswählen

sudo apt-get install iodbc
Dieses Paket enthält das Konfiguirationstool für die DSN, ähnlich wie unter Windows.

Danach das MyODBC Paket installieren.

Code: Alles auswählen

sudo apt-get install libmyodbc
Häufig liest man, dass das Paket von Ubuntu nicht gut wäre und man besser die Source von Mysql.com kompilieren sollte, aber ich kann mich nicht beklagen, hatte nie ein Problem. Ausserdem ist es einfacher.

Jetzt wird es kniffelig.

Das Konfigurationstool aufrufen:

Code: Alles auswählen

sudo iodbcadm-gtk
Wichtig: mit sudo aufrufen!

Auf den Reiter "ODBC Drivers" klicken und dann auf "Add a driver" (links unten)

"Description of the driver" eingeben: mysql
"Driver file name" eingeben: /usr/lib/odbc/libmyodbc.so
"Setup file name" eingeben: /usr/lib/odbc/libodbcmyS.so

Auf Groß und Kleinschreibung achten.

Danach im Terminal eingeben:

Code: Alles auswählen

sudo gedit /etc/odbc.ini
und folgenden Code in das Fenster kopieren:

Code: Alles auswählen

[ODBC Data Sources]
mysqldb = mysql

[mysqldb]
DRIVER      = mysql
server      = 192.168.x.x
database    = meine_datenbank
port        = 3306
user        = username
password    = password
die Werte anpassen und abspeichern.

Danach ist die MySQL DB über ODBC ansprechbar:

Code: Alles auswählen

UseODBCDatabase()
If OpenDatabase(0,"mysqldb","username","password")
  Debug "klappt"
EndIf
PB 4.30 auf Windows Vista / XP SP2 und Linux
Benutzeravatar
bembulak
Beiträge: 228
Registriert: 13.12.2005 16:34
Wohnort: Österreich

Beitrag von bembulak »

:allright:

Sehr, sehr wertvoll und hilfreich.
Danke.
Benutzeravatar
blbltheworm
Beiträge: 217
Registriert: 22.09.2004 19:36
Wohnort: Auf der schönen Schwäbischen Alb

Beitrag von blbltheworm »

Hallo,
auch von mir nochmal vielen Dank für die detaillierte Beschreibung.
Genau das hab ich gebraucht.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: MySQL & PB unter Linux für Windows-Umsteiger

Beitrag von Andreas21 »

Hi,

ich kann in der Console über ODBC auf MySql zugreiffen mit dem Tool isql. Aber in PB bekomme ich keine verbindung hin.

Ich habe es nach der vorlage hier gemacht was auch nicht mit isql funktioniert hat.
Ich habe dann eine andere Anleitung benutzt und mit isql eine Verbindung hinbekommen.

Code: Alles auswählen

debian:/opt/lampp# isql mysql root
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> quit
debian:/opt/lampp# 
/etc/odbcinst.ini

Code: Alles auswählen

[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5-5.1.6.so
Setup = /usr/lib/libmyodbc3S-5.1.6.so
FileUsage = 1
/etc/odbc.ini

Code: Alles auswählen

[mysql]
Driver = MySQL
Description = mysql driver 3.51
SERVER = localhost
PORT = 3306
USER = root
Password = 
Database = mysql
Socket = /opt/lampp/var/mysql/mysql.sock

Code: Alles auswählen

UseODBCDatabase()
If OpenDatabase(0, "mysql","root","")
  If DatabaseQuery(0, "SELECT * FROM user")
    While NextDatabaseRow(0)
      PrintN( GetDatabaseString(0, 1))
    Wend
    FinishDatabaseQuery(0)
  Else
    MessageRequester("Fehler", "Kann die folgende Abfrage nicht ausführen: "+DatabaseError())
  EndIf
Else
  MessageRequester("Fehler", "Die Datenbank konnte nicht geöffnet werden!")
EndIf
Ich habe noch unixodbc, tdsodbc und mysql-connector-odbc-5.1.6-linux-glibc2.3-x86-32bit installiert.

Linux Version ist Debian 5 Lenny.
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Antworten