sql >> Database teknologi >  >> RDS >> Mysql

Opret MySQL bruger og database fra PHP

Dette svar er blevet redigeret flere gange baseret på nye oplysninger fra OP

Er root faktisk tilladt at oprette forbindelse til serveren fra værten, som du opretter forbindelse fra? Hvis fejlstrengen returnerer det kanoniske navn på serveren, er der en meget god chance for, at 'localhost' ikke peger på 127.0.0.1 :

Det burde lyde noget som "Adgang nægtet for brugeren 'root'@localhost'", ikke navnet på serveren.

Prøv:

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

Rediger (Efter mere information i kommentarerne)

Hvis du opretter forbindelse fra en helt anden vært, skal du fortælle MySQL [email protected]_hostname_or_ip har tilladelse til at oprette forbindelse og har passende privilegier til at oprette en database og brugere.

Du kan gøre dette ret nemt ved at bruge phpmyadmin (på MySQL-serveren), eller en forespørgsel 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 ;

Jeg vil råde til ikke at navngive denne bruger 'root', bare oprette en bruger med alle de nødvendige globale privilegier. I eksemplet brugte jeg 192.168.1.1, der nemt kunne være et værtsnavn, bare sørg for, at DNS er sat korrekt op. Angiv værten, der matcher præcist som det vises i logfiler, når du opretter forbindelse til fjernserveren.

Du kan også justere grænser efter smag. Flere oplysninger om CREATE USER syntaks kan findes her , GRANT her .

Rediger

Hvis du bruger MySQL 4 - CREATE er ikke en mulighed. Du ville bare bruge GRANT (4.1 Docs On User Management )

Rediger

Hvis du bruger C-Panel, skal du bare brug API'en . Selvom ja, det har sine særheder, er det lettere at vedligeholde ting, der bruger det i stedet for ad hoc-arbejde. Mange succesfulde applikationer bruger det uden problemer. Som enhver anden API skal du være på forkant med ændringer, når du bruger den.



  1. Sådan hentes data fra databasen ved hjælp af webservices (JAX - RS) i eclipse ved hjælp af Java

  2. bundle mislykkedes - Kan ikke finde PostgreSQL-klientbiblioteket (libpq)

  3. Hvordan får man servicelegitimationsoplysninger for en serviceinstans oprettet på IBM Bluemix uden at binde instansen til en applikation på Bluemix?

  4. ændre tabel drop kolonne i Oracle database