MySQL wieder übers Netzwerk erreichbar machen

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

MySQL wieder übers Netzwerk erreichbar machen

Postby visionmaster » 26. August 2004 08:10

Wenn ich '/opt/lampp/lampp security' aufrufe dann kann ich hier nicht mehr die Einstellung zurück nehmen. An welche Stelle mache ich das dann? In welcher config file muss ich was abändern, damit MySQL wieder übers Netzwerk erreichbar ist?

Besten Dank.
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby Kristian Marcroft » 26. August 2004 08:13

Hi,

1. warum möchtest du mysql übers Netzwerk erreichbar machen?
Ist ein potenzielles Sicherheitsrisiko. Das es nicht übers Netzwerk erreichbar ist, bedeutet _nicht_ das du wenn du von deinem Win PC aus eine Seite auf dem Apache öffnest die eine MySQL verbindung vorraussetzt, das dies nicht mehr geht. Sondern das du von Extern sprich deinem Win PC oder jemand anders aus dem Internet nicht mit irgendwelchen Tools Angriffe auf Port 3306 fahren können.

2. schau mal in die my.cnf dort ist der Port auskommentiert. -> Ändern -> neustarten -> geht

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Client auf anderem Rechner

Postby visionmaster » 26. August 2004 08:42

KriS wrote:Hi,

1. warum möchtest du mysql übers Netzwerk erreichbar machen?
Ist ein potenzielles Sicherheitsrisiko. Das es nicht übers Netzwerk erreichbar ist, bedeutet _nicht_ das du wenn du von deinem Win PC aus eine Seite auf dem Apache öffnest die eine MySQL verbindung vorraussetzt, das dies nicht mehr geht. Sondern das du von Extern sprich deinem Win PC oder jemand anders aus dem Internet nicht mit irgendwelchen Tools Angriffe auf Port 3306 fahren können.


Ich möchte das ein Client (MySQLCC oder fabforce) auf MySQL zugreifen können. Und wenn nicht übers Netzwerk erreichbar ist, dann können doch diese Clients nicht auf die DB zugreifen... Oder habe ich das etwas falsch verstanden? (Client=Windows XP, Webserver=Red Hat Linux+XAMPP)

2. schau mal in die my.cnf dort ist der Port auskommentiert. -> Ändern -> neustarten -> geht


Den Port habe ich auskommentiert, /opt/lampp/lampp/ security gestartet, MySQL ist immer noch nicht übers Netzwerk erreichbar. /opt/lampp/lampp reloadmysql habe ich übrigens auch gestartet. Was mache ich falsch?

Danke!
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Re: Client auf anderem Rechner

Postby visionmaster » 26. August 2004 10:30

Kann mir niemand helfen? (Sorry, wenn ich etwas ungeduldig bin...)

Danke!
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby Kristian Marcroft » 26. August 2004 11:03

Hi,

sorry bin auf der Arbeit..
Zeit fürs Forum is begrenzt...
momentan keine Zeit mir die conf genau anzuschaun...
evtl. jemand anders? Ansonsten bis heute abend warten..

So long
KriS
User avatar
Kristian Marcroft
AF Moderator
 
Posts: 2962
Joined: 03. January 2003 12:08
Location: Diedorf

Postby visionmaster » 26. August 2004 14:43

KriS wrote:Hi,
sorry bin auf der Arbeit..


Hi,

Kein Problem. In der my.cnf Datei war port=3306 auskommentiert und port=0 was aktiviert. D.h. nun steht

port=3306
#port=0

drin.

=> Meldung "MySQL ist über's Netzwerk erreichbar".

An einer Stelle steht in my.cnf # The following options will be passed to all MySQL clients.
#password=your_password

Muss vielleicht hier auch etwas eingetragen sein?

Wenn ich mit /opt/lampp/bin/mysql -p (über Putty) meinen MySQL-Monitor aufrufe, so kann ich mich mit meinem Root Kennwort einloggen.

Mit meinem DBDesigner-Client (www.fabforce.net) bekomme ich leider keine DB-Verbindung hin. Fehlermeldung: Connection to database failed.

dbExpressError: invalid Username/Password. Siehe Screenshot:


Image

Host=???? (die IP-Adresse meines Webservers, oder?)
Username=root
Password=******

Als Port ist 3306 im Client eingestellt.

Muss ich sonst noch etwas in irgendeiner config-Datei ändern damit mein Client connection bekommt oder sind die Zugangsdaten die ich eingebe,

also IP-Adresse, etc... irgendwie falsch?

Danke für die
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby Wiedmann » 26. August 2004 14:53

dbExpressError: invalid Username/Password

Dein Client kann sich doch verbinden. Wenn nicht, würde ja sonst keine Meldung wegen falschem Benutzer kommen (wo sehe ich dazu was im Screenshot?). Eine Anmeldung kann ja erst nach der Verbindung versucht werden.

Vielleicht solltest du einfach mal wirklich nachschauen welche Benutzer in MySQL eingerichtet sind, und was diese dürfen: phpMyAdmin --> Rechte
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby visionmaster » 26. August 2004 16:00

Vielleicht solltest du einfach mal wirklich nachschauen welche Benutzer in MySQL eingerichtet sind, und was diese dürfen: phpMyAdmin --> Rechte


Ich denke auch, das der Client verbindet, aber einfach keinen Zugang bekommt:

Folgendes habe ich rausgepastet:

Server localhost
Benutzerübersicht
Keine Rechte

Die Rechte einer Datenbank "test" sehen so aus:

Server localhost
Datenbanken
Status
Variablen
Rechte
Prozesse
Exportieren



Benutzer mit Zugriff auf die Datenbank "test" :

Benutzer Host Typ Rechte Grant Aktion
Jeder % datenbankspezifisch ALL PRIVILEGES Nein Bearbeiten
root linux global ALL PRIVILEGES Ja Bearbeiten
root localhost global ALL PRIVILEGES Ja Bearbeiten


=> Was heisst das nun? Was muss ich tun?

Thanks!
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby Wiedmann » 26. August 2004 16:03

Was kommt denn bei dieser SQL Abfrage raus (kannst du auch in dem Tool mysql machen):
Code: Select all
select `user`, `host` from `mysql`.`user`;
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby visionmaster » 26. August 2004 20:18

Wiedmann wrote:Was kommt denn bei dieser SQL Abfrage raus (kannst du auch in dem Tool mysql machen):
Code: Select all
select `user`, `host` from `mysql`.`user`;


Kann ich Dir erst morgen früh sagen. Was sollte rauskommen? Gibt es kein gutes Tutorial wo das mit den Usern und Userrechten bei MySQL erklärt wird und vor allen Dingen wie man diesbezüglich Änderungen machen kann? Ich will doch nur von meinem Client eine Verbindung zur Datenbank herstellen, das kann doch nicht so schwer sein! :(
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby visionmaster » 27. August 2004 08:12

Folgendes wird phpMyAdmin ausgegeben:

user host
linux
root linux
localhost
pma localhost
root localhost


Hmm, die Ausgabe hilft mir nicht weiter. Ich kapiere einfach nicht was ich für Daten in meinem Client eingeben muss... :?:

Besten Dank!
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby Wiedmann » 27. August 2004 10:19

Die Tabelle zeigt dir folgendes:
Welche Benutzer dürfen sich von welchem Rechner aus bei MySQL anmelden.

Der Benutzer "root" darf sich von "localhost", also dem Rechner wo MySQL selbst läuft, und vom dem Rechner aus mit dem Namen "linux" anmelden.

Der Benutzer "pma" darf sich nur von dem selben Rechner aus anmelden ("localhost").

Die zwei Benutzer "linux" und "localhost" müssen irgendwie falsch sein (keinen Eintrag in der Host-Spalte). Evtl war aber auch die Spalte "user" leer und du hast das nur nicht kenntlich gemacht? Dann sind das die zwei anonymous-Accounts. Sprich, von dem Rechner "linux" und "localhost" aus kann sich jeder (ohne Passowort) an MySQL anmelden.

Der Rechner "linux" ist dabei auch der, auf dem MySQL installiert ist.
(Kann mir einer der Linuxer hier sagen, wieso bei MySQL/Linux nicht der localhost-Account langt (geht ja beim pma auch)?)

Ein Benutzer der sich von jedem Rechner aus mit MySQL verbinden können soll, benötigt ein "%" in der Spalte "host"

Du müsstest also noch einen Benutzer "root" einrichten der sich von überallher anmelden darf. Mit einem SQL-Kommando geht das so:
Code: Select all
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;


Kannst den Benutzer aber auch mit phpMyAdmin einrichten(Rechte -> "Neuen Benutzer einrichten").
Du kannst da natürlich auch gern einen anderen Benutzernamen anstatt "root" nehmen. Bei "password" bitte was sinvolles eintragen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby visionmaster » 27. August 2004 11:32

Hallo,

Vielen Dank für Deine ausführliche und verständliche Erklärung!

I.
Ein Benutzer der sich von jedem Rechner aus mit MySQL verbinden können soll, benötigt ein "%" in der Spalte "host"

Du müsstest also noch einen Benutzer "root" einrichten der sich von überallher anmelden darf. Mit einem SQL-Kommando geht das so:
Code: Select all
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;



So ich habe nun für root folgende Rechet:
root % Ja ALL PRIVILEGES Ja

Leider funzt es immer noch nicht, also langsam denke ich bin zu doof...

user=root
passwort=kennwort
hostname=192.168.1.222
port=3366

Folgende Fehlermeldung erscheint:
Image


=>Habe ich schon wieder etwas falsch gemacht?

II.
Muss eigentlich auf meinem Windows XP-Rechner die host-Datei irgendwie noch bearbeitet werden? Bei mir steht folgendes drin:

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Dies ist eine HOSTS-Beispieldatei, die von Microsoft TCP/IP
# für Windows 2000 verwendet wird.
#
# Diese Datei enthält die Zuordnungen der IP-Adressen zu Hostnamen.
# Jeder Eintrag muss in einer eigenen Zeile stehen. Die IP-
# Adresse sollte in der ersten Spalte gefolgt vom zugehörigen
# Hostnamen stehen.
# Die IP-Adresse und der Hostname müssen durch mindestens ein
# Leerzeichen getrennt sein.
#
# Zusätzliche Kommentare (so wie in dieser Datei) können in
# einzelnen Zeilen oder hinter dem Computernamen eingefügt werden,
# aber müssen mit dem Zeichen '#' eingegeben werden.
#
# Zum Beispiel:
#
# 102.54.94.97 rhino.acme.com # Quellserver
# 38.25.63.10 x.acme.com # x-Clienthost

# 127.0.0.1 localhost
192.168.1.222 localhost


III.
An einer Stelle steht in my.cnf
# The following options will be passed to all MySQL clients.
# password=your_password

Muss vielleicht hier auch etwas eingetragen sein? Was bedeutet dieser Parameter eingentlich?


Vielen Danke für Deine Hilfe! Ich hoffe bald zur Lösung zu kommen... :oops:[/url]
Last edited by visionmaster on 27. August 2004 11:42, edited 1 time in total.
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Postby Wiedmann » 27. August 2004 11:42

hostname=192.168.1.222

Das ist die IP von deinem Linux-Rechner oder von deinem Windows-Rechner? Da muß jedenfalls die IP vom Linux-Rechner hin (da läuft ja MySQL).

passwort=kennwort

Das Kennwort ist ja, denke ich mal, das selbe was du bei dem SQL-Befehl bei "IDENTIFIED BY 'password'" genommen hast...

# 127.0.0.1 localhost
192.168.1.222 localhost

Das muß schon so stehenbleiben:
127.0.0.1 localhost

(Wem gehört jetzt die IP "192.168.1.222"?)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby visionmaster » 27. August 2004 12:20

Ich glaube mich macht diese s!"§$% DB-Connection noch wahnsinnig!!! Es geht immer noch nicht.

Das ist die IP von deinem Linux-Rechner oder von deinem Windows-Rechner? Da muß jedenfalls die IP vom Linux-Rechner hin (da läuft ja MySQL).


Das ist die IP-Adresse von meinem Linux-Rechner.

Das Kennwort ist ja, denke ich mal, das selbe was du bei dem SQL-Befehl bei "IDENTIFIED BY 'password'" genommen hast...


Ja, klar. Habe extra ein dummy passwort 'test' genommen, damit ich Vertipper ausschliesse.

Das muß schon so stehenbleiben:
127.0.0.1 localhost


O.k., habe ich zurückgeändert.

(Wem gehört jetzt die IP "192.168.1.222"?)


Wie gesagt die IP des Linux-Servers, 100%.

Die zwei Benutzer "linux" und "localhost" müssen irgendwie falsch sein (keinen Eintrag in der Host-Spalte). Evtl war aber auch die Spalte "user" leer und du hast das nur nicht kenntlich gemacht? Dann sind das die zwei anonymous-Accounts. Sprich, von dem Rechner "linux" und "localhost"
aus kann sich jeder (ohne Passowort) an MySQL anmelden.


Die Spalte "user" war leer, sorry. Die anonymous Accounts kann ich ja löschen, ist ja nur eine Sicherheitslücke?

=> Frage: An einer Stelle steht in my.cnf
# The following options will be passed to all MySQL clients.
#password=your_password
Muss vielleicht hier auch etwas eingetragen sein?

=> Frage: Muss ich sobald ich bei den Usern etwas geändert habe ein /opt/lampp/lampp reloadmysql machen? (Habe ich übrigens auch gemacht.)

user host
root %
root localhost


Danke.
visionmaster
 
Posts: 36
Joined: 24. June 2004 14:39

Next

Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 10 guests