mysql im lokalen netz

L

LaborWolf

Mitglied
Thread Starter
Dabei seit
24.01.2006
Beiträge
51
Reaktionspunkte
0
aufbau:
2 apple i macs im netzwerk.
auf dem einen laeuft die datenbank (mysql). funzt auch alles via localhost (auch mit apache und php).

auf dem zweiten rechner werden die html bzw php sachen programmiert.

zum testen waere es jetzt sehr sinnvoll, wenn der zweite rechner auf die mysql datenbank auf dem ersten rechner zugreifen koennte.

ein user dafuer ist angelegt und das %- zeichen gestzt bekommen. dieser user kann also von ueberall her auf die datenbank zugreifen.

wenn ich jetzt auf dem zweiten rechner ein php skript ausfuehre, funktioniert das aber nicht. wo vorher localhost stand (fuer das connect) habe ich einfach den rechnernamen von dem ersten rechner reingeschrieben.

hat jemandd einen tipp?
 
Nur noch einmal zur sicheren Überprüfung: Rufe mal auf dem Client-Rechner den MySQL-Browser mit der Userkennung auf und schaue, dass der Zugriff auch wirklich klappt. Danach können wir weiterdoktern.
 
Damit das funktioniert, solltest Du folgende Dinge geprüft haben:

o Verhindert eventuell eine Firewall die Kommunikation via (Eingangs-)Port 3306?
o Wird im MySQL-Konnektor (PHP) auch der richtige Host angesprochen (und nicht 'localhost')?
o Ist MySQL überhaupt für die Verbindungsaufnahme via »Network« in der Konfigurationsdatei (Standard: /etc/my.cnf) konfiguriert?
o Wurde die MySQL-Datenbank 'mysql' nach der Benutzerkonfiguration (host-Tabelle) neu geladen (»FLUSH PRIVILEGES«)?
 
Mangels Fehlermeldung ins Blaue getippt: MySQL läuft mit --skip-networking => Ändern!

Matt
 
"Funktioniert nicht" ist die schlechteste Fehlermeldung, die es gibt.
Spätestens wenn etwas nicht klappt, solltest Du an den kritischen Stellen den Erfolg von Befehlsaufrufen prüfen und ggf. Fehlermeldungen ausgeben.
Dann weisst Du zum Einen, an welcher Stelle etwas "nicht funktioniert" und zweitens oft auch warum es "nicht funktioniert".

HTH
 
@schpongo: klappt nicht
@Hilarious:
1. ich weiss nicht genau, wie ich das mit der firewall rauskriegen kann. ich habe mal das firewall logging angemacht, dann von dem client versucht auf die datenbank zuzugreifen. dabei blieb das log.file leer.
2. ja
3. die datei habe ich nicht- welche conf datei meinst du?
4. ja
@msslovi0: das hoert sich gut an. nur- wie mache ich das? meinst du beim start von mysqld_safe .... das als option mitangeben?
 
Naja, dann hat's ja schon einmal nichts mit PHP zu tun.

Auf dem Client-Rechner mal ein Terminal aufmachen und dann

telnet SERVERRECHNER 3306

eingeben. Wenn Du dann irgendwelche Zeichen eingeben kannst, scheint die Firewall jedenfalls offen.

Ansonsten unter "System->Sharing" Firewall für Port 3306 öffnen.
 
Mach doch mal die Firewall ganz aus.

--skip-networking kannst du entweder direkt an den Startaufruf hängen oder in der Config-Datei eingeben - die hast du ja aber anscheinend nicht.

Matt
 
also, wenn ich das mit telnet mache, kommt ne menge kauderwelsch, ich kann aber dazwischen schreiben....
 
Muss gehen. Hier noch eine Möglichkeit zum Schrauben (weil wir ja eigentlich nichts über Deine Installation wissen):

In /etc/my.cnf die Zeile

old-passwords

eintragen.

Viel Erfolg. Wahrscheinlich bist Du sogar im Forum von MySQL besser aufgehoben, denn mit Apple hat's augenscheinlich nichts mehr zu tun.
 
ich hab das mit dem skip... versucht:

sudo mysqld_safe --skip networking

Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file /usr/local/mysql/data/SERVER.pid
060308 18:53:43 mysqld ended
 
Gerade noch gesehen. Kauderwelsch ist gut, somit ist die Firewall offen. Ich muss nun aber wirklich...

Verbinde Dich über den Client-Rechner mittels Konsole und "mysql"-Kommando, schraube immer wieder an der my.cnf-Datei (und restarte den Server!). Einfacher als das händische Eintragen ist's natürlich mit dem MySQL-Admin-Programm auf dem Server-Host . Wenn's irgendwann klappt, ist's wahrscheinlich vollbracht.

Mit dem Admin-Progi kannst Du auch leichter die Logs kontrollieren und wirst das Problem sofort erkennen können.
 
Anstatt auf gut Glück herumzudoktern würde ich mir doch einfach mal die Fehler beim Verbindungsversuch ausgeben lassen.
 
ok. wuerde ich gerne. kann ich mir das in irgendein logfile schreiben, wenn ja wie? gibt es eine moeglichkeit den server laufen zu lassen und dabei alle ausgaben des servers zu sehen (so aehnlich wie beim kompilieren)?

thx

*edit*
ich habe eine logile.err gefunden. allerdings steht die in dem verzeichnis data. und da darf ich nicht rein. :(
 
Zuletzt bearbeitet:
Gibt Dein Skript, das "nicht funktioniert" keine Fehler aus?
Fängst Du bei kritischen Operationen nicht die Fehler ab? (function() or die "Diese Operation ist fehlgeschlagen";)
Oder genügt Dir ein einfaches "funktioniert nicht" :confused:

Hast Du vielleicht auch mal einen Blick ins Logfile des MySQL Servers geworfen.
Auch da kann man evtl. was sinnvolles drin sehen.
Die logfiles des Servers im Lifebetrieb beobachten, kannst Du mit dem Kommando:
Code:
sudo tail -f /Pfad/zum/Logfile
 
ok- das mit dem tail "funtioniert" ;)

mal sehen was ich noch rauskriege- danke erstmal an alle
natuerlich werde ich auch des raetsels loesung posten, wenn es klappt.

gruesse LW
 
maceis schrieb:
Anstatt auf gut Glück herumzudoktern würde ich mir doch einfach mal die Fehler beim Verbindungsversuch ausgeben lassen.

Och nee! Komm!

Wo wir doch gerade jetzt so schön im Nebel rumstochern!

:D
 
Installiere Dir endlich den MySQL-Admin auf dem Server-Host. Dann kannst Du klickiklacki Fenster schieben und Dir die Logs leicht dahin legen, wohin Du willst, wenn's nicht mit my.cnf direkt klappen sollte.

Wenn Du Dich nicht einmal mit /.../bin/mysql vom Client-Host auf den Server verbinden kannst, brauchst Du wirklich nicht im PHP-Code herumstochern!

Schau in die Logs!
 
ddu meinst das admin tool, welches ich auf der seite von mysql.com bekomme? oder meinst du mysqladmin, das kann ich bereits jetzt in der konsole aufrufen.

solltest du das von der mysql site meinen, habe ich das naechste problem:
das gibts es nur fuer den power pc mit mac os x. icch hab aber nen intel in meinem rechner....

das heisst ich zieh mir mal die sourceccodes und kompiliere mir das selbst? oder hat jemand erfahrung mit dem linux x86 paket? ich meine hat jemand das normale linux paket bereits auf einem imac(intel) installiert?

ich werd mal loslegen und berichten....
:cool:

*bericht linux paket*
also das "normale" linux paket scheint nicht zu funktionieren. da bekomme ich die fehlermeldung: cannot execute binary file

oder hat das wieder was mit X11 zu tun??? :mad:

*bericht kompilieren*
zum einen schaffe ich es nicht das richtig zu kompilieren und zum anderen habe ich in den entsprechenden hilfedateien zur kompilierung entdeckt, dass diese version fuer tiger 10.3 und somit wahrscheinlich auch fuer einen power mac ist. soll heissen- ich stehe zumindest was den mysql-administrator angeht so ziemlich im regen....

:(

werde mal schauen, ob ich mit anderen admin tools weiterkomme ...
 
Zuletzt bearbeitet:
Du Freak ;) Intel-Mac?

Keine Ahnung, wie du das Programm auf dem x86 zum Laufen bekommst. Auf jeden Fall umständlich (developer.apple.com -> ... Transformation Guidelines ...).

Bei der Compilierung der Linux-Version vieeeel Spaß noch (neben glibc braucht man da sicherlich noch einige andere Bibliotheken). Für die Portierung von Programmen bieten sich immer erst einmal BSD-Sourcen vor Linux-Sourcen an.

Langer Rede, kurzer Sinn.

Starte mysqld aus der Konsole zusätzlich mit
"--log=/wo_auch_immer_sie_steht_und_wie_auch_immer_die_log-datei_heissen_soll.log"

Und danach Verbindungsversuche und danach in der Log-Datei nachsehen, warum es nicht geklappt hat.
 
Zurück
Oben Unten