PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Datenbank für bestimmte IP von außen öffnen (Shell)



Silent2
25.10.11, 18:16
Hallo zusammen,

ich trenne gerade eine Webseite auf 2 Server auf, 1x Apache und 1x MySQL-Server. Die Server sind per Gigabit miteinander verbunden und stehen in einem Rack.

Aus Perfomance-Gründen habe ich auf dem MySQL Server kein PHP und kein Apache installiert, wäre ja Quatsch.

Nun habe ich aber dadurch auch kein phpmyadmin, und kann meinen Benutzer nicht für außen öffnen, zumindest bekomme ich es per Shell nicht hin. Ich möchte, dass der Zugriff von außen nur von meinem Apache Server möglich ist. (IP)

Was muss ich tun? Ich habe mal bei einem anderen Server geschaut, was phpmyadmin so macht, wenn ich den host von "localhost" auf "jeder" umstelle:



CREATE USER 'uXXXX'@'%' IDENTIFIED BY PASSWORD '41digitcode';

GRANT USAGE ON * . * TO 'uXXXX'@'%' IDENTIFIED BY '41digitcode' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;


Wie muss ich diese Abfrage anpassen?

- ich will nur eine bestimmte IP zu lassen
- ich will das Passwort vom Benutzer auch dafür nutzen

Danke

Gruß

TheDarkRose
25.10.11, 18:26
Wo ist jetzt das Problem die Anfrage anzupassen? Einfach das % durch die IP ersetzen. und natürlich das richtige Passwort ersetzen. Ein bisschen mehr Selbstinitiative und du hättest nicht fragen müssen ;)

Silent2
25.10.11, 18:40
Hast ja Recht, allerdings ist hier gerade irgendwo der Wurm drinnen.

Ich hab schon die obige Abfrage mit % ausgeführt, hab auch somit aktuell vom Rechner zuhause (Windows MySQL Client) Zugriff drauf, aber ich sehe nur die Datenbank "information_schema", obwohl ich mit "mysql -u root -p dbXXXX < backup.sql" schon meine Daten in die vorher angelegte Datenbank (die ich nicht sehe) importiert habe.

Der Fehler muss wohl aktuell woanders liegen. Ich glaube ich mach Schluss für heute..;)

Gruß

TheDarkRose
25.10.11, 18:44
Wahrscheinlich hast du beim zweiten Befehl den Hund mit den Leerzeichen drinnen. Ich würde auch nicht alle Datenbanken genehmigen, sondern nur die benötigt wird.


GRANT USAGE ON dbXXX.* TO 'uXXXX'@'%' IDENTIFIED BY '41digitcode'

Silent2
25.10.11, 19:04
Hab die Lösung gefunden, hatte das vergessen:



GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES , LOCK TABLES ON dbxxxx . * TO 'uxxxx'@'%';


Danke

Wenn ich nun nur die IP will, lösche ich den User einfach mit % und lege ihn mit IP an? (natürlich muss ich dann wieder die ganzen Berechtigungs-Abfragen ausführen)

Gruß

TheDarkRose
25.10.11, 19:08
:ugly::eek::D Man bin ich blind. Da stand ja GRANT USAGE :ugly: Ein GRANT ALL reicht auch, du brauchst nicht alles auflisten