sql >> Databasteknik >  >> RDS >> Mysql

Skapa MySQL-användare och databas från PHP

Detta svar har redigerats flera gånger baserat på ny information från OP

Är root faktiskt tillåtet ansluta till servern från värden som du ansluter från? Om felsträngen returnerar det kanoniska namnet på servern, finns det en mycket god chans att 'localhost' inte pekar på 127.0.0.1 :

Det borde återspegla något i stil med "Åtkomst nekad för användare 'root'@localhost'", inte namnet på servern.

Försök:

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

Redigera (Efter mer information i kommentarerna)

Om du ansluter från en helt annan värd måste du berätta för MySQL [email protected]_hostname_or_ip tillåts ansluta och har lämpliga privilegier för att skapa en databas och användare.

Du kan göra detta ganska enkelt med phpmyadmin (på MySQL-servern), eller en fråga som:

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 ;

Jag skulle råda dig att inte namnge den här användaren "root", bara skapa en användare med alla de globala privilegier som behövs. I exemplet använde jag 192.168.1.1, som lätt kan vara ett värdnamn, se bara till att DNS är korrekt inställt. Ange värden som matchar exakt som det visas i loggar när du ansluter till fjärrservern.

Du kanske också vill anpassa gränserna efter smak. Mer information om CREATE USER syntax kan hittas här , GRANT här .

Redigera

Om du använder MySQL 4 - CREATE är inte ett alternativ. Du skulle bara använda GRANT (4.1 Docs On User Management )

Redigera

Om du använder C-Panel, bara använd API:t . Även om ja, det har sina egenheter, är det lättare att underhålla saker som använder det snarare än ad hoc-arbete. Många framgångsrika applikationer använder det utan problem. Som alla andra API måste du hålla koll på ändringar när du använder det.



  1. Installera mysql-libs på server med MySQL-Server5.5

  2. Hur man tar bort efterföljande blanksteg i SQL Server – RTRIM()

  3. Hur rangordnar jag arrayvärden med dubbla värden och hoppar över vissa positioner om det är oavgjort?

  4. Köra flera PHP-skript samtidigt (databasloopproblem)