Eigene Datenbank

Aus HSMWiki
Wechseln zu: Navigation, Suche

Allen Nutzern der NCC-Dienste steht der zentrale mysql-Server "wdb2.hs-mittweida.de" zur Verfügung. Pro Nutzer kann auf diesem Server eine Datenbank eingerichtet werden. Der Nutzer erhält zwei Datenbank-Accounts. Ein Konto mit vollem Zugriff auf die Datenbank und einen, der lediglich nur lesenden Zugriff erlaubt. Innerhalb des Hochschulnetzes kann von jedem Rechner auf die Datenbank zugegriffen werden (z.B. Webserver etc.).

Eigene Datenbank einrichten

Um die eigene Datenbank einzurichten, muss man sich ana unserem Portal mit seinen Nutzerdaten anmelden und den Punkt "MySQL Benutzung einrichten" aufrufen. Existiert noch keine eigene Datenbank, werden zwei Datenbanknutzer eingerichtet: "username" und "username_ro". Letztgenannter Nutzer hat lediglich Lesezugriff auf die Datenbank (ro). Beiden Nutzern wird ein Kennwort generiert und die Datenbank "username" wird angelegt.

Nutzername und Kennwort werden angezeigt und sollten sich gemerkt bzw. an sicherer Stelle notiert werden.

Der Datenbankserver liest neue bzw. geänderte Nutzerdaten jede Vierstelstunde neu ein. Danach kann jeder Nutzer mit seiner eigenen Datenbank arbeiten.

Datenbank verwalten/benutzen

Es gibt verschiedene Mittel, mit seiner Datenbank zu arbeiten. Da wäre einerseits das Webfrontend phpMyAdmin, das unter https://webdb.hs-mittweida.de abrufbar ist. Für Freunde der Konsole gibt es das Kommandozeilen-Tool "mysql" (auf Unix/Linux-Rechnern). Desweiteren gibt es noch grafische Tools für verschiedene Betriebssystem, zum Beispiel mysqlcc für Unix/X11.

Am universellsten einsetzbar ist hierbei das Webfrontend. So ziemlich jeder Rechner hat unabhängig vom Betriebssystem einen Browser installiert, so dass man darüber seine Datenbank administrieren kann. Zumal der phpMyAdmin vom NCC für die Benutzung mit dem zentralen Datenbankserver vorkonfiguriert wurde und die Oberfläche relativ leicht verständlich ist.

Am vielseitigsten wenn auch am Komplexesten ist das Kommandozeilen-Tool "mysql", was den fortgeschrittenen Nutzern zu empfehlen ist. Nützlich ist dieses Tool auch für eigene Shell-Scripts. Genauer soll hier nicht auf "mysql" eingegangen werden. Interessierte Nutzer können sich über die man-Page informieren.

Letztendlich gibt es noch grafische Frontends wie mysqlcc, die auf einem Rechner lokal installiert und konfiguriert werden müssen.

Datenbank sichern

Man kann die Datenbank vollständig oder teilweise im phpMyAdmin exportieren. Für eine gelegentliche Sicherung von Hand ist das die einfachste Lösung.

Möchte man seine Datenbank regelmäßig (z.B. einmal am Tag sichern) wird das manuelle Anlegen eines Backups schnell lästig. Hierfür sollte man sich am besten einen Linux/Unix-Rechner suchen (z.B. im Linux-Pool des NCC) und sich dort einen Backup-Job im cron installieren. Das eigentliche Tool zum Anlegen eines Backups heißt "mysqldump". Es legt eine Datei an, die SQL-Kommandos enthält, mit deren Hilfe sich die Datenbank im Falle eines Absturzes wieder herstellen lässt. Wie üblich bietet dieses Kommando eine Menge an Optionen, über die die Manual-Page umfassend informiert.

Datenbank löschen

Wenn Sie Ihre Datenbank nicht mehr benötigen, dann können Sie diese unter folgendem Link auch wieder löschen.

Zugriff mit Perl

Unter Perl steht die Datenbankschnittstelle DBD/DBI zur Verfügung, um auf die persönliche mysql-Datenbank zuzugreifen. Dabei ist DBD eine allgemeine Datenbankschnittstelle für Perl. DBI repräsentiert den datenbankspezifischen Teil der Schnittstelle, auf die DBD aufsetzt.

Ein Beispiel in Perl sieht so aus:

use DBI;
$driver = "mysql";
$dsn = "DBI:$driver:database=username;host=wdb2.hs-mittweida.de";
$dbh = DBI->connect($dsn, "username", "password");
$sth = $dbh->prepare("SELECT * FROM cat");
$sth->execute();
@row = @{$sth->fetch};
$sth->finish();

Zugriff mit PHP

Natürlich stehen in PHP die mysql-Funktionen zur Verfügung, mit deren Hilfe man auf seine Datenbank zugreifen kann. Eine Dokumentation findet man z.B. unter phpbox.de

Kurzes Beispiel:

/* Verbindung aufbauen, auswählen einer Datenbank */
$link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
or die("Keine Verbindung möglich: " . mysql_error());
echo "Verbindung zum Datenbankserver erfolgreich";
mysql_select_db("Meine_Datenbank") or die("Auswahl der Datenbank fehlgeschlagen");

/* ausführen einer SQL Anfrage */
$query = "SELECT * FROM Meine_Tabelle";
$result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());

/* Ausgabe der Ergebnisse in HTML */
echo "
\n"; while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t\n"; foreach ($line as $col_value) { echo "\t\t\n"; } echo "\t\n"; } echo "
$col_value
\n";

/* Freigeben des Resultsets */
mysql_free_result($result);

/* schliessen der Verbinung */
mysql_close($link);
?>

Anderen Programmiersprachen

Für andere Programmiersprachen gibt es teilweise bereits installierte Libraries (tcl/tk) auf dem Webserver des NCC. Für Java gibt es JDBC-Connectoren auf der Web-Seite von mysql.com. In anderen Programmiersprachen kann auf die ODBC-Schnittstelle zurückgegriffen werden, auch über mysql.com erhältlich.