Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Erstellen Sie einen MySQL-Benutzer und eine Datenbank aus PHP

Diese Antwort wurde mehrmals bearbeitet, basierend auf neuen Informationen des OP

Ist Root eigentlich erlaubt? um sich von dem Host, von dem aus Sie sich verbinden, mit dem Server zu verbinden? Wenn die Fehlerzeichenfolge den kanonischen Namen des Servers zurückgibt, besteht eine sehr gute Chance, dass „localhost“ nicht auf 127.0.0.1 zeigt:

Das sollte so etwas wie "Zugriff verweigert für Benutzer 'root'@localhost'" widerspiegeln, nicht den Namen des Servers.

Versuchen Sie:

$con = mysql_connect("127.0.0.1","root","pass");

Bearbeiten (Nach weiteren Informationen in den Kommentaren)

Wenn Sie sich von einem völlig anderen Host verbinden, müssen Sie MySQL [email protected]_hostname_or_ip darf eine Verbindung herstellen und verfügt über die entsprechenden Berechtigungen zum Erstellen einer Datenbank und von Benutzern.

Sie können dies ziemlich einfach mit phpmyadmin (auf dem MySQL-Server) oder einer Abfrage wie:

tun
CREATE USER 'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret';

GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.1' IDENTIFIED BY PASSWORD 'secret' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Ich würde empfehlen, diesen Benutzer nicht 'root' zu nennen, sondern einfach einen Benutzer mit allen erforderlichen globalen Berechtigungen zu erstellen. In dem Beispiel habe ich 192.168.1.1 verwendet, das könnte leicht ein Hostname sein, stellen Sie einfach sicher, dass DNS entsprechend eingerichtet ist. Geben Sie den exakt passenden Host an wie es in Protokollen angezeigt wird, wenn Sie sich mit dem Remote-Server verbinden.

Vielleicht möchten Sie die Grenzen auch nach Belieben anpassen. Weitere Informationen zum CREATE USER Syntax finden Sie hier , GRANT hier .

Bearbeiten

Wenn Sie MySQL 4 verwenden, ist CREATE keine Option. Sie würden einfach GRANT (4.1 Docs On User Management verwenden )

Bearbeiten

Wenn Sie C-Panel verwenden, einfach API verwenden . Ja, es hat zwar seine Macken, aber es ist einfacher, Dinge zu warten, die es verwenden, als Ad-hoc-Workarounds. Viele erfolgreiche Anwendungen verwenden es ohne Probleme. Wie bei jeder anderen API müssen Sie bei der Verwendung auf dem Laufenden bleiben.