Announcement

Collapse
No announcement yet.

Datenbank-Connect mit option files (Python/MySQL)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datenbank-Connect mit option files (Python/MySQL)

    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>).

Working...
X