Hauptmenü

Untermenü

Einführung - Das Testsystem - MySQL

1. Das Admin-Passwort

... wird nach einer Installation nicht gesetzt. Darum sollte man sich als Erstes darum kümmern. Warum fragt ihr euch, ist doch eh nur ein lokales System? Stimmt, aber dann fällt euch unter Umständen ein sehr beliebter Fehler nicht auf. Wenn ihr euch per PHP an einer MySQL-Datenbank anmeldet, kann es schon mal vorkommen, dass man mit falschen Variablen arbeitet. Da wird dann zum Beispiel $passwort für die Definition benutzt und ein $password für die Anmeldung. Und ohne gesetztes Passwort fällt der Fehler nicht auf.

Einrichten

Unter Windows öffnet ihr dazu die MS-DOS Eingabeaufforderung ("Start" -> "Ausführen" -> cmd) und wechselt, falls nötig zuerst das Laufwerk, wenn ihr MySQL nicht auf C: installiert habt. Dann springt in das Verzeichnis, wo der Befehl mysqladmin(.exe) liegt, also zum Beispiel:


# MySQL wurde auf Laufwerk D installiert.
D:
# möglicher Pfad zur mysql.exe
cd \xammp\mysql\bin


Unter Linux könnt ihr euch das sparen, da ist der entsprechende Pfad global verfügbar. Ihr müsst einfach nur das Terminal öffnen. In beiden Fällen gebt ihr nun folgendes Kommando ein und merkt euch bitte das, was ihr für mein_passwort eingegeben habt:


mysqladmin -u root -h localhost password 'mein_passwort'

2. Zugriffsrechte für externe Rechner

Wenn ihr mit zwei Rechnern arbeitet, so solltet ihr anschließend noch ein neues Konto einrichten, da bis zu diesem Zeitpunkt nur ein Zugriff vom selben Rechner aus möglich ist. Hier gibt es zwei Möglichkeiten. Entweder richtet ihr für eure Windows-Kiste eine feste IP ein oder ihr arbeitet mit einer so genannten Wildcard. Da Letzteres aber mit einem gewissen Risiko verbunden ist, zeige ich euch mal, wie man das mit der IP macht.

Eine feste IP vergeben

In diesem Fall muss die entsprechende Netzwerkkarte des Windows-Rechners eingerichtet werden. Dazu geht ihr über "Start" in die "Systemsteuerung" und wählt den Punkt "Netzwerkverbindungen" aus. Dann wählt ihr die gewünschte Verbindung aus und klickt dann auf "Eigenschaften". Unter dem Punkt "Internetprotokoll (TCP/IP)" findet ihr dann die Konfigurationsmöglichkeiten. Wählt die Option "Folgende IP-Adresse verwenden aus" und gebt dann eine ein, die der des Servers ähnlich ist, also zum Beispiel 192.168.0.2. Bei der Subnetzmaske nehmt ihr denselben Wert, also 255.255.255.0. Aber bitte nehmt die Netzwerkkarte für euer lokales System. Und nicht die, über die eure Internetverbindung läuft.

3. Rechte setzen

Zuerst müsst ihr euch bei MySQL anmelden. Das geht über das Linux-Terminal des Zweitrechners mittels mit mysql -u root -h localhost -p. Anschließend gebt ihr euer Admin-Passwort ein und seht im Erfolgsfall dann ein mysql>. Danach wählt ihr die notwendige Tabelle mit use mysql; aus. Und anschließend gebt ihr folgenden SQL-Befehl ein (den Sinn werdet ihr später begreifen):


insert into user (host,user,passwordvalues('[IP]','[BENUTZERNAME]',password('[PASSWORT]'));

wobei [IP] für die IP-Adresse des Windows-Rechners steht. Wenn ihr eine feste vergeben habt, so tragt sie dort ein, anderenfalls nur ein *. Den Benutzernamen und das Passwort könnt ihr frei vergeben. Die Eingabe könnte also so aussehen:

Mit fester IP-Adresse


insert into user (host,user,passwordvalues('192.168.0.2','loriot',password('jodeldiplom'));

Ohne feste IP-Adresse


insert into user (host,user,passwordvalues('*','loriot',password('jodeldiplom'));

Wenn das funktioniert hat, müsst ihr jetzt nur noch die Rechte setzen, da die bis zu diesem Zeitpunkt noch fehlen. Dazu reicht dieser Befehl aus:


GRANT ALL PRIVILEGES ON *.* TO '[BENUTZERNAME]'@'[IP]'
  WITH GRANT OPTION

... oder im Detail anhand zweier Beispiele:

Mit fester IP-Adresse


GRANT ALL PRIVILEGES ON *.* TO 'loriot'@'192.168.0.2' 
  WITH GRANT OPTION

Ohne feste IP-Adresse


GRANT ALL PRIVILEGES ON *.* TO 'loriot'@'*' WITH GRANT OPTION

4. Der Zugriff

Wenn ihr jetzt mit einem Programm wie HeidiSQL auf MySQL zugreifen möcht, so müsst ihr nur noch die entsprechenden Zugangsdaten eingeben. Wenn ihr über ein lokales System auf einem Rechner verfügt, so gebt ihr bei Hostname/IP einfach localhost oder 127.0.0.1 ein. Anderenfalls nehmt ihr die IP des Serverrechners (z.B. 192.168.0.1) oder den Namen, den ihr in der hosts-Datei definiert habt. Benutzername und Passwort kennt ihr ja. Et voilà und fertig.

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt