Samstag, 5. August 2006
Tutorial MySQL Konfigurieren und Verwalten

Tutorial:

MySQL Konfigurieren und Verwalten


!! Die Konfiguration wurde von 4.XX nach 5.X entscheidend verändert.
!!

das folgende bezieht sich im wesentlichen auf 4.xx / Ergänzungen
zu 5.x am Ende
 

1. Verzeichnisstruktur von MySQL

/bench Benchmarking-Suite (kann gefahrlos gelöscht werden)
/bin Die ganzen Binaries
    mysql.exe  Der MySQL-Text-Client (auf CMD-Zeile)
    mysqladmin.exe Verwaltungstool u.a. für den
Shutdown
    mysqld.exe  Standard-Demon (Server)
    mysqld-nt.exe spezialisierter Demon für NT
/XP
 
/data Datenverzeichnis: Jede Datenbank ein Verzeichnis
    Verzeichnis mysql enthält die Verwaltungstabellen
mit Nutzern u PW

/lib  Bibliotheken
/share Zeichensätze
 

2. Konfiguration

Die Default-Konfiguration wird durch eine Datei my.cnf bestimmt
Diese Datei ist unter Windows nicht direkt lesbar (weil der Typ cnf
mit anderen Konfigurationsdateien von Windows vorbelegt ist).
Im allgemeinen sind die Dateien my.cnf und deren Vorlage my.ini
identisch und werden bei der Installation richtig erstellt.

Zum Editieren öffnet man _erst_ den Editor, dann Alle Dateien einstellen
und dann die Datei my.cnf öffnen.
Besser ist noch, die Datei my.ini beim Start zu verwenden.

Neben manchem anderen sind hier folgende Einstellungen wichtig (z.B.):

basedir = c:/apache/mysql/  (bei xampp –installation)
datadir = c:/apache/mysql/data/

Falls man das Programm und die Daten auf verschiedenen Laufwerken ablegen
will muss man hier anpassen.
 

3. Start und Stop von MySQL

Zum ersten Experimentieren  ist es nicht sinnvoll mysql als Dienst
einzurichten
. Wird der Server dagegen dauernd als Datenbankserver verwendet
sollte der Dienst beim Start mit gestartet werden.

Folgende batch-Datei startet den Standardserver mysqld mit der Konfigurationsdatei
my.cnf im Verzeichnis mysql

mysql_start.bat
@echo off
mysql\bin\mysqld --defaults-file=mysql\my.cnf  –standalone

Mit Pfadangaben und unterschiedlichen verzeichnissen für Programm
und Daten:
(C:\apache\mysql\bin\mysqld --defaults-file=C:\apache\mysql\my.ini
–standalone)

Das folgende stoppt den mysqld:

mysql_stop.bat
@echo off
echo Mysql shutdowm ...
mysql\bin\mysqladmin shutdown

(funktioniert nicht mit mysqld-nt sofern er am Anfang als Dienst gestartet
wurde)
(bei 5.X mysqladmin -u root shutdown)
 

4. Logging

Im Datadir schreibt mysql eine Log-Datei mysql.err, für Auskunft bei
Fehlern
 

5. Verwaltung

Normalerweise wird man die Datenbank als Backend für eine Anwendung
betreiben, die auf bestehende Passworte aufsetzt, so dass man in der Regel
keine weiteren Passworte zu Fuß eingeben muss. Das Rootpasswort für
den localhost-Zugang kann bei der Installation eingerichtet werden (dieses
muss gut aufbewahrt werden !!) Näheres s. Rechte
 

5.1. Erstlogin / Emergency-Login

In manchen Fällen versagt jedoch das Frontend und man muss zu Fuß
passworte wiederherstellen.

Meistens hat der Hauptnutzer root (der mit dem Linux-Nutzer root nur
den Namen gemeinsam hat) beim Einloggen am selben Rechner (localhost) kein
passwort.
Um dies zu ändern muss das passwort geändert werden.
 

  • Mit cmd.exe ein Eingabefenster öffnen.
  • In das Verzeichnis mysql\bin wechseln.
  • Mysql  -u root eingeben.
  • Bei Passwort return eingeben. Sie bekommen den mysql-Prompt  mysql>
    (alle Befehle werden mit \g oder ; ausgeführt)
  • Mit     use mysql;   in die Datenbank
    mysql wechseln.
  • Mit select user,password from user;  lässt man sich die Nutzer
    und die (verschlüsselten) Passworte anzeigen. Hier kann man auch feststellen,
    ob jemand ein Passwort hat oder nicht (leeres Feld).
  • Das folgende sollte man vorher einmal geübt haben, weil man das Ergebnis
    nicht mehr zurücknehmen kann:
  • Mit update user set Password=password(’neues_passwort’) where Host =’localhost’
    AND User=’root’; bekommt der user root ein neues Passwort.Zur Erklärung
    : die Funktion password(’neues_passwort’) verschlüsselt das passwort 
    und   ..where Host =’localhost’ AND User=’root’ sucht die Zeile
    raus in der der Eintrag für den Nutzer root an localhost steht.
  • Mit mysqladmin.exe flush-privileges werden die Daten endgültig
    in die Datenbank eingetragen

5.2. Wie fügt man nun Nutzer hinzu ?

Da hier die Kommandozeile sehr Tipp-Fehleranfällig ist, da alle Werte
belegt werden müssen, wird empfohlen das über eins der zahlreichen
Frontends (MySQL-Front, phpMyAdmin..) zu besorgen
Für den Notfall hier die Kommandozeile um einen neuen Nutzer klaus
mit Passwort geheim und SELECT-Rechten auf alle Datenbanken einzurichten
der sich von überall einloggen kann.

Mysql>
INSERT into user values(‘%’,’klaus’,password(‘geheim’),’Y’,’N’,’N’;’N’,’N’,’N’;’N’
,’N’,’N’;’N’,’N’,’N’;’N’,’N’);
Wichtig : Es müssen genau 17 Felder sein !!

Wichtig ist zu verstehen, dass beim Zugang auch noch danach unterschieden
wird, ob der Nutzer sich von localhost oder von einem anderen Rechner einloggt.

Naheres zum Verständnis unter MySQL-Rechte
 

5.2. Verwaltung über MySQL-Front

Eins der vielen Tools zur Fernverwaltung ist MySQL-Front.
Es funktioniert natürlich nur von außen, wenn
  • Für root ein passwort für % eingerichtet ist
  • Eine evtl. Firewall den Port 3306 passieren lässt.


MySQL-Front braucht am Anfang nur das root-PW , dann kann man MySQL
bequem verwalten.

Das restliche Programm ist fast selbsterklärend und bietet den
vollen Funkionsumfang einer Verwaltungsoberfläche. zusätzlich
werden zur Kontrolle immer die SQL-Befehle ausgegeben. Dadurch wird man
auch mit SQL etwas vertrauter.
 

6. MYSQL 5.X

Was ist anders bei MYSQL 5.X ?
  • Der Code wurde optimiert um noch mehr Schnelligkeit zu erreichen
  • Die Tabelle user wurde um 20 weitere Felder erweitert, die aber alle für
    die meisten Nutzer ohne Bedeutung sind (sicheres Einloggen per SSL etc.)
  • Das Installationsprogramm wurde erheblich verbessert, sodass es jetzt viele
    mehr Auswahlmöglichkeiten bietet und Fehler besser abfängt. Außerdem
    wird Standardmäßig nach C:\Programme installiert.
  • Gestoppt wird der Server mit mysqladmin –u root shutdown.

MUE 5.8.06

... comment