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,password)
values('[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,password)
values('192.168.0.2','loriot',password('jodeldiplom'));
Ohne feste IP-Adresse
insert into user (host,user,password)
values('*','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