Ich habe einen Benutzer user@'%'
mit erstellt password 'password
. Aber ich kann mich nicht verbinden mit:
mysql_connect('localhost:3306', 'user', 'password');
Als ich einen Benutzer erstellt habe user@'localhost'
, konnte ich eine Verbindung herstellen. Warum? Bedeutet '%' nicht von JEDEM Host?
mysql
remote-access
user2333586
quelle
quelle
Antworten:
Um eine Remoteverbindung herzustellen, muss MySQL den Port 3306 an die IP-Adresse Ihres Computers in my.cnf binden. Dann müssen Sie den Benutzer sowohl im lokalen Platzhalter als auch im Platzhalter '%' erstellt haben und Berechtigungen für alle DBs als solche erteilen . Siehe unten:
my.cnf (my.ini unter Windows)
dann
Dann
Abhängig von Ihrem Betriebssystem müssen Sie möglicherweise Port 3306 öffnen, um Remoteverbindungen zuzulassen.
quelle
mysql.default_port = <private instance port>
befolgt, in meiner php.ini festgelegt und dann127.0.0.1
durchgehend für meinen Datenbank-Hostnamen verwendetBefolgen Sie die Anweisungen (Schritte 1 bis 3 werden in Windows nicht benötigt):
Finden Sie die zu bearbeitende MySQL-Konfiguration:
Finden Sie
bind-address=127.0.0.1
in der Konfigurationsdatei ändernbind-address=0.0.0.0
(Sie bind - Adresse an einem Ihrem Schnittstelle ips einstellen können oder wie ich verwende 0.0.0.0)Starten Sie den auf der Konsole ausgeführten MySQL-Dienst neu:
service restart mysql
Erstellen Sie einen Benutzer mit einem sicheren Kennwort für die Remoteverbindung. Führen Sie dazu den folgenden Befehl in MySQL aus (wenn Sie Linux-Benutzer sind, um die MySQL-Konsolenausführung zu erreichen,
mysql
und wenn Sie das Kennwort für den Root-Lauf festlegenmysql -p
):Jetzt sollten Sie einen Benutzer mit dem Namen
user
und dem Kennwort vonsafe_password
haben, der eine Remoteverbindung herstellen kann.quelle
Für welche Datenbank ist der Benutzer? Schauen Sie sich dieses Beispiel an
Um auf Ihre Frage zurückzukommen, bedeutet der Operator "%" alle Computer in Ihrem Netzwerk.
Wie Aspesa zeigt, bin ich mir auch sicher, dass Sie einen Benutzer erstellen oder aktualisieren müssen. Suchen Sie nach all Ihren MySQL-Benutzern:
Sobald Sie Ihren Benutzer eingerichtet haben, sollten Sie in der Lage sein, eine Verbindung wie folgt herzustellen:
ich hoffe es hilft
quelle
code
mysql_connect ('localhost: 3306', 'user', 'password');code