Eigene Datenbank mit MySQL
WICHTIG: Das Starten einer Datenbank darf bei uns nur auf dem Server turing erfolgen!

Die zum Umgang mit MySQL benötigten Skripte befinden sich im folgenden Verzeichnis:

/home/sep2006/software/installed/mysql-skripts/
Sie können jedoch durch Ausführen des Skriptes setvars mit
turing$ . /home/sep2006/software/installed/setvars
die Datenbank-Skripte in den Pfad einbinden. Nun sind sie ohne Angabe des obigen Pfades ausführbar.

Zum Arbeiten mit der Datenbank sind einige Angaben notwendig. In der Anleitung sind diese Angaben rot markiert uns müssen durch die jeweils eigenen Wahlen für Datenbankname (hier: mydb), Verzeichnis (hier: ~/db) und Passwort (hier: mypassword), welches für den einzigen Benutzer sep gilt, ersetzt werden.

mydb (der Default-Name ist main) steht für den Namen der Natenbank, ~/db für den absoluten Pfad zum Verzeichnis, in dem die Datenbank gespeichert werden soll. Das Verzeichnis darf noch nicht exisitieren. mypassword ist durch das gewählte Password für den einzigen Benutzer sep zu ersetzen.

turing$ createdb -d mydb ~/db mypassword
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
041011 17:18:29  InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
041011 17:18:30  InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
041011 17:18:31  InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
041011 17:18:33  InnoDB: Started
/usr/local/mysql/bin.orig/mysqld: ready for connections
041011 17:18:33  /usr/local/mysql/bin.orig/mysqld: Normal shutdown

041011 17:18:34  InnoDB: Starting shutdown...
041011 17:18:34  InnoDB: Shutdown completed
041011 17:18:34  /usr/local/mysql/bin.orig/mysqld: Shutdown Complete
Damit gibt es nun eine Datenbank, aber der Datenbank-Server läuft noch nicht!

Dies ist später wichtig, wenn wir von einem Programm aus an die Datenbank herangehen! Dazu ist es aber nötig die Datenbank vorher zu starten.

Starten der Datenbank:

turing$ startdb ~/db
turing$ 041011 17:26:37  InnoDB: Started
/usr/local/mysql/bin.orig/mysqld: ready for connections
<hier ENTER eingeben!>
turing$
Bevor wir die interaktive Kommunikation mit dem Datenbankserver suchen, muss die Datenbank flensburg.sql importiert werden. Stellt sicher, dass die Datei flensburg.sql in dem Verzeichnis liegt, in dem Ihr gerade arbeitet. Wenn nicht, könnt Ihr sie zum Beispiel mit dem folgenden Kommando dorthin kopieren:
wget http://www.mathematik.uni-ulm.de/sai/ws08/infsys/uebungen/blatt09/flensburg.sql

Den eigentlichen Import nehmt Ihr dann wie folgt vor:

workondb ~/db/ myDB < flensburg.sql
Enter password:
turing$

Damit wird die komplette Datenbank 'flensburg' in Euren Server importiert. Ihr könnt sie fortan wie folgt verwenden:

workondb ~/db flensburg
Damit ist der interaktive Modus erreicht: Die Datenbank meldet sich mit ihrem Prompt mysql>!
turing$ workondb ~/db flensburg
Enter password: 
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11 to server version: 4.0.9-gamma-standard-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show tables;
+---------------------+
| Tables_in_flensburg |
+---------------------+
| AZ                  |
| CO2                 |
| Fahrer              |
| Hersteller          |
| Modelle             |
| Steuersatz          |
| Vergehen            |
| VergehenProAZ       |
| Zulassung           |
+---------------------+
9 rows in set (0.00 sec)
Durch Eingabe von quit oder <Ctrl-D> können wir diesen interaktiven Modus beenden.
mysql> quit
Bye 
turing$

Durch Eingabe von

turing$ stopdb ~/db
Enter password: mypassword
041011 17:54:13  /usr/local/mysql/bin.orig/mysqld: Normal shutdown

turing$ 041011 17:54:13  InnoDB: Starting shutdown...
041011 17:54:13  InnoDB: Shutdown completed
041011 17:54:13  /usr/local/mysql/bin.orig/mysqld: Shutdown Complete
<hier wieder ENTER eingeben>

turing$
"fahren" wir danach die Datenbank "herunter".

Alle Schritte nochmal im Überblick:

  1. Datenbank-Skripte einbinden
    turing$ . /home/sep2006/software/installed/setvars
  2. Initialisierung
    turing$ createdb -d mydb ~/db mypassword
    
  3. Datei Flensburg importieren (dazu werden mit Hilfe des Zeichens "<" die einzelnen Befehle, die in der Datei flensburg.sql stehen, zeilenweise eingelesen und ausgeführt.)
  4. 
    
  5. Datenbank starten
    turing$ startdb ~/db
    
  6. Verbindung zur Datenbank herstellen
    turing$ workondb ~/db mydb
    
  7. Fröhliches Arbeiten mit SQL, am Ende dann
    mysql> quit
    
  8. Datenbank anhalten
    turing$ stopdb ~/db
    
Bei wiederholtem Arbeiten sind nur noch die Schritte 4-7 durchzuführen!

Bitte denken Sie immer daran, Ihren Datenbank-Server mittels stopdb zu beenden, sobald Sie ihn nicht mehr benötigen, um nicht unnötig Ressourcen zu "verbraten".


Norbert Heidenbluth, 18.12.2008