Eine Verbindung zu einem Datenbank-Server (hier am Beispiel von MySQL) ist mit <a href="http://www.python.org">Python</a> generell leicht zu bewerkstelligen.
Man importiert das entsprechende DB-Modul (<a href="">MySQLdb</a> von A. Dustman), schreibt ein paar Zeilen Verbindungscode und fertig ist das Programm. Im Prinzip funktioniert es so bei den meisten Programmiersprachen (Perl, PHP, Java, C/C++).
Apropos: Falls Sie nicht sicher sind, ob bei Ihnen MySQL läuft, dann können Sie das mit dem folgenden Befehl eruieren:
<i>telnet localhost 3306</i>
In der Regel bekommt man wenigstens die Versionsnummer des MySQL-Servers zu Gesicht - und etwas Zeichensalat; das reicht aber aus, um zu wissen, dass MySQL auf der Maschine installiert ist.
Bei Python gibt es zudem eine Besonderheit: der Anwender kann die Verbindung auch interaktiv mit dem Interpreter herstellen. Wird die Sitzung beendet, ist aber auch der eingetippte Code (eben Einweg-Code;-)) auf Nimmerwiedersehen verloren.
Nichtdestotrotz kann der Anwender die Verbindungsparameter selbstverständlich in ein Programm einbauen; das ist das Übliche.
Nach soviel Vorrede soll ein kleines Beispiel die typische Vorgehensweise für eine Datenbankverbindung (mit Python) verdeutlichen.
<PRE>
#/usr/bin/env python
import sys
import MySQLdb
if __name__ == '__main__':
try:
conn = MySQLdb.connect(db="meinedatenbank",
host="localhost",
user="ich",
passwd="geheim")
print "Verbunden"
except:
print "Verbindungsfehler"
sys.exit(1)
conn.close()
print "Verbindung getrennt"
sys.exit(0)
</PRE>
So weit, so gut. Mit <i>chmod +x connection.py</i> macht man das Script ausführbar. Danach kann man es auf der Konsole wie folgt aufrufen:
<PRE>
./connection.py
Verbunden
Verbindung getrennt
</PRE>
Wenn MySQL sauber installiert wurde, sollten Sie die obige Ausgabe sehen - falls nicht, müssen Sie Ihre Installation checken bzw. Ihren Administrator um Hilfe bitten.
Weiter. Es ist zudem möglich, auch den Port (z. B. port="3307" - einfach zu den Parametern hinzufügen) zu ändern (unter Linux/Unix gibt es noch den <i>unix_socket</i> Parameter: <i>unix_sock="/var/tmp/mysql.sock"</i>). Diese Dinge sollten insgesamt alle nicht wirklich neu sein.
Neu ist aber eventuell für manchen Anwender die Tatsache, dass man die Verbindungsparameter in sogenannten <i>option files</i> ablegen kann (das funktioniert übrigens mit Perl auf die gleiche Art). Der Vorteil dieser Methode ist, dass MySQL dann automatisch die Parameter aus einer Default-Datei ausliest.
Warum sollte man das tun? Nun, es können Sicherheitsaspekte eine Rolle spielen; oder vielleicht sind Sie es leid, ständig die Parameter auf der Konsole einzutippen zu müssen.
Wie sieht eine solche Default-Datei aus? Der Aufbau erinnert stark an das *.ini Format unter Windows.
<PRE>
# Datei .my.cnf
[client]
host=localhost
user=ich
password=geheim
</PRE>
Kurz zum Aufbau: Ein <i>option file</i> ist generell in Gruppen untergliedert; jede Gruppe besteht aus key=value Paaren.
Eine Gruppe wird immer durch eckigen Klammern markiert (siehe Client). Wichtig hierbei: Die keys dürfen nicht abgekürzt werden (beispielsweise h für host). Die Raute wird als Kommentarzeichen verwendet.
Unter Linux lautet die Default-Bezeichnung einer solchen Datei <i>.my.cnf</i> (solange es sich um eine persönliche Datei handelt); die Datei sollte sich im <i>home</i> Directory des Anwenders befinden; es ist auch möglich, sie im aktuellen Verzeichnis zu plazieren (also dort, wo sich Ihr Programm befindet).
Überdies lassen sich mit <i>option files</i> vom Administrator auch globale Einstellungen für mehrere Nutzer setzen (in <i>/etc/my.cnf</i>).
Man importiert das entsprechende DB-Modul (<a href="">MySQLdb</a> von A. Dustman), schreibt ein paar Zeilen Verbindungscode und fertig ist das Programm. Im Prinzip funktioniert es so bei den meisten Programmiersprachen (Perl, PHP, Java, C/C++).
Apropos: Falls Sie nicht sicher sind, ob bei Ihnen MySQL läuft, dann können Sie das mit dem folgenden Befehl eruieren:
<i>telnet localhost 3306</i>
In der Regel bekommt man wenigstens die Versionsnummer des MySQL-Servers zu Gesicht - und etwas Zeichensalat; das reicht aber aus, um zu wissen, dass MySQL auf der Maschine installiert ist.
Bei Python gibt es zudem eine Besonderheit: der Anwender kann die Verbindung auch interaktiv mit dem Interpreter herstellen. Wird die Sitzung beendet, ist aber auch der eingetippte Code (eben Einweg-Code;-)) auf Nimmerwiedersehen verloren.
Nichtdestotrotz kann der Anwender die Verbindungsparameter selbstverständlich in ein Programm einbauen; das ist das Übliche.
Nach soviel Vorrede soll ein kleines Beispiel die typische Vorgehensweise für eine Datenbankverbindung (mit Python) verdeutlichen.
<PRE>
#/usr/bin/env python
import sys
import MySQLdb
if __name__ == '__main__':
try:
conn = MySQLdb.connect(db="meinedatenbank",
host="localhost",
user="ich",
passwd="geheim")
print "Verbunden"
except:
print "Verbindungsfehler"
sys.exit(1)
conn.close()
print "Verbindung getrennt"
sys.exit(0)
</PRE>
So weit, so gut. Mit <i>chmod +x connection.py</i> macht man das Script ausführbar. Danach kann man es auf der Konsole wie folgt aufrufen:
<PRE>
./connection.py
Verbunden
Verbindung getrennt
</PRE>
Wenn MySQL sauber installiert wurde, sollten Sie die obige Ausgabe sehen - falls nicht, müssen Sie Ihre Installation checken bzw. Ihren Administrator um Hilfe bitten.
Weiter. Es ist zudem möglich, auch den Port (z. B. port="3307" - einfach zu den Parametern hinzufügen) zu ändern (unter Linux/Unix gibt es noch den <i>unix_socket</i> Parameter: <i>unix_sock="/var/tmp/mysql.sock"</i>). Diese Dinge sollten insgesamt alle nicht wirklich neu sein.
Neu ist aber eventuell für manchen Anwender die Tatsache, dass man die Verbindungsparameter in sogenannten <i>option files</i> ablegen kann (das funktioniert übrigens mit Perl auf die gleiche Art). Der Vorteil dieser Methode ist, dass MySQL dann automatisch die Parameter aus einer Default-Datei ausliest.
Warum sollte man das tun? Nun, es können Sicherheitsaspekte eine Rolle spielen; oder vielleicht sind Sie es leid, ständig die Parameter auf der Konsole einzutippen zu müssen.
Wie sieht eine solche Default-Datei aus? Der Aufbau erinnert stark an das *.ini Format unter Windows.
<PRE>
# Datei .my.cnf
[client]
host=localhost
user=ich
password=geheim
</PRE>
Kurz zum Aufbau: Ein <i>option file</i> ist generell in Gruppen untergliedert; jede Gruppe besteht aus key=value Paaren.
Eine Gruppe wird immer durch eckigen Klammern markiert (siehe Client). Wichtig hierbei: Die keys dürfen nicht abgekürzt werden (beispielsweise h für host). Die Raute wird als Kommentarzeichen verwendet.
Unter Linux lautet die Default-Bezeichnung einer solchen Datei <i>.my.cnf</i> (solange es sich um eine persönliche Datei handelt); die Datei sollte sich im <i>home</i> Directory des Anwenders befinden; es ist auch möglich, sie im aktuellen Verzeichnis zu plazieren (also dort, wo sich Ihr Programm befindet).
Überdies lassen sich mit <i>option files</i> vom Administrator auch globale Einstellungen für mehrere Nutzer setzen (in <i>/etc/my.cnf</i>).