kann keine Verbindung zu mysql mit php
Ich kann nicht scheinen, um die mysql-Verbindung mit einem php-Skript, auch wenn ich eine Verbindung herstellen können gut mit phpmyadmin. Ich habe einen Benutzer erstellt mit einem Passwort, und es gab die richtigen Rechte für die db, aber jedesmal, wenn es verbindet, es stirbt sagt Zugriff verweigert. Ich verwende xampp auf einem windows xp-box. Firewalls sind alle deaktiviert, und ich habe den Benutzernamen und das Passwort korrekt sind. Hier ist der code:
$conn=mysql_connect('localhost','westbrookc16','megadots') || die (mysql_error());
Tun, Benutzernamen müssen in einem bestimmten format oder so?
- Wie haben Sie gewähren Sie die Berechtigungen? Das problem in diesem Fall ist nicht der php-code, aber auf den mysql-Ende. Die connect-Anweisung korrekt ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich eine Ahnung, dass hier das problem ist der host, den Sie gewähren, obwohl es wirklich nicht mehr als eine Vermutung. Wenn Sie Zugriff gewähren myuser@'127.0.0.1' oder die Server, die aktuelle ip-Adresse, werden Sie nicht erlaubt sich zu verbinden mit localhost als host. Dies ist aufgrund der Tatsache, dass, wenn "localhost" als host, php davon aus, dass Sie möchten, verwenden Sie einen unix-socket anstelle von Netzwerk-sockets, und in diesem Zusammenhang 127.0.0.1 ist nicht das gleiche wie localhost.
Aus der manuelle Eintrag für mysql_connect():
Hoffe das ist nicht Total überflüssig. 🙂
Habe ich gesehen, dies vor, wo eine mysql-Benutzers in der über php und eine andere nicht. Manchmal ist der Benutzer selbst funktioniert über die Kommandozeile, aber nicht von php.
Es ist immer das gewesen, was Emil ist es zwei. Einen mysql-Benutzer wirklich der Benutzer/host-paar. damit der Benutzer die megadots@localhost und der Benutzer megadots@mycoolhost sind im mysql aufgeführt.user-Tabelle als zwei getrennte Datensätze.
Wenn Sie können dich von der Befehlszeile aus ausführen dieser Abfrage.
sehen Sie die vollständige Liste der Anwender und Ihre hosts.
erkennt man wenn man die phpMyAdmin-Benutzer, arbeiten, Blick in die host-Spalte-das ist ja wohl der host, den Sie verwenden möchten.
zurücksetzen des host führen Sie diese Abfragen (!seien Sie vorsichtig, dies zu tun Ihre Arbeit mit der privilages Tabelle für die gesamte mysql-installation)
Wenn Sie sehen einen Datensatz für den Benutzernamen und % als Gastgeber haben Vorrang vor allem anderen, wenn es mehrere Datensätze für die Benutzer und " % " als host-für einen von Ihnen, es ist möglich, dass der Benutzername, mit % als host hat das falsche Passwort und egal wie manytimes, die Sie zurücksetzen username@localhost, das Passwort ungültig ist, weil es im Vergleich zu username@% Sie auf login.
Wenn Sie Linux verwenden Sie den synaptic package manager zu finden und laden Sie alle Bibliotheken und mods, die PHP und MySQL benötigen, so können Sie die beiden verbinden. Mein problem war, dass PHP-Skripte laufen allein arbeitete auf der server-Seite, aber wenn ich versuchte, mit Hilfe von PHP-scripts die MySQL-Verbindung würde es nicht verbinden würde ich nur einen einfachen weißen Seite. Dann bemerkte ich, dass ich nicht die MySQL-client-Bibliotheken, die PHP verwendet, um conect zu MySQL. Ich musste nur die MySQL-server-Bibliotheken. Einmal habe ich installiert, die client-seitige Bibliotheken und neu gestartet und der apache-server meine PHP-Skripte hatten kein problem mit dem anschließen. Standardmäßig PHP 5 kommt nicht mit installiert die MySQL-client Bibliotheken Seite.
In meinem Fall, es stellte sich hatte ich gelöscht, der Benutzer, die verwendet wurde, um die Datenbank zu erstellen und ich war mit. Dieses sollte in der Regel geben die Fehlermeldung "Benutzer angegebenen definer nicht vorhanden', aber aus irgendeinem Grund war es einfach zurückgeben die mehr allgemeiner Zugriff verweigert-zu meinem PHP-code. Ich bin mir nicht sicher, warum ich noch immer ein login über die Kommandozeile und andere Schnittstellen. Korrigieren mein problem, das ich neu erstellt die Benutzer, die gelöscht wurde.
Dies ist entweder ein Tippfehler oder Sie haben keine Berechtigungen erteilt. Manchmal kann es erschreckend schwierig zu erkennen, diese.
Schlage ich vor, nicht auf phpmyadmin zugreifen, aber laden Sie eine Kopie von SQLYOG (die Kostenlose community-edition ist toll) und loggen Sie sich mit Ihren Benutzerdaten über das. Sobald das Problem diagnostiziert wird, gibt es copy/paste Benutzername/Passwort wieder auf Ihr Skript.
Übrigens phpmyadmin ist gut, aber ein Programm wie sqlyog ist meist günstiger, so lohnt sich trotzdem - ich bin sicher, Sie werden umgewandelt werden. Wenn sqlyog ist nicht ganz nach Ihrem Geschmack es gibt einige Kostenlose und kommerzielle alternativen.
Wie?
Welchen host hast du Verwendung für den Benutzer zu gewähren?
Dies ist, wie es normalerweise getan:
in Ihrem Fall 'somehost' sollte wohl 'localhost' oder '127.0.0.1' (siehe anderen post)
Syntax-Referenz: http://dev.mysql.com/doc/refman/5.1/en/grant.html
Nachdem ich ein ähnliches problem habe ich gefunden, dass das ersetzen von '127.0.0.1' mit 'localhost' hat den trick (trotz der Tatsache, dass ich war in der Lage, erfolgreich eine Verbindung über das terminal mit 'localhost').
Ich hatte das gleiche problem, aber dann habe ich es herausgefunden, dass, wenn Sie lassen Sie in den Standard-Konten mit '%' (beliebiger host), KEIN PASSWORT, dann hast du einfach keine Verbindung herstellen kann mit einem Passwort. Ich bin nicht sicher, was das problem genau ist, aber entfernen Sie es gelöst.