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 bestimmtDiese 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 Diensteinzurichten. 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 beiFehlern
5. Verwaltung
Normalerweise wird man die Datenbank als Backend für eine Anwendungbetreiben, 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 Wertebelegt 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