sql >> Databáze >  >> RDS >> Mysql

Vytvořte MySQL uživatele a databázi z PHP

Tato odpověď byla několikrát upravena na základě nových informací poskytnutých OP

Je root skutečně povolen připojit se k serveru z hostitele, ze kterého se připojujete? Pokud chybový řetězec vrací kanonický název serveru, je velmi dobrá šance, že „localhost“ neukazuje na 127.0.0.1:

To by mělo odrážet něco jako "Přístup odepřen pro uživatele 'root'@localhost'", nikoli název serveru.

Zkuste:

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

Upravit (Po více informací uvedených v komentářích)

Pokud se připojujete z úplně jiného hostitele, musíte MySQL sdělit [email protected]_hostname_or_ip má povoleno se připojit a má příslušná oprávnění k vytváření databáze a uživatelů.

Můžete to udělat poměrně snadno pomocí phpmyadmin (na serveru MySQL) nebo dotazu jako:

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 ;

Doporučil bych nepojmenovávat tohoto uživatele 'root' , pouze vytvořit uživatele se všemi potřebnými globálními oprávněními. V příkladu jsem použil 192.168.1.1, což může být snadno název hostitele, jen se ujistěte, že je správně nastaven DNS. Zadejte hostitele, který se má přesně shodovat jak se objeví v protokolech, když se připojíte ke vzdálenému serveru.

Můžete také upravit limity podle chuti. Další informace o CREATE USER syntaxi naleznete zde , GRANT zde .

Upravit

Pokud používáte MySQL 4 - CREATE není možnost. Použili byste pouze GRANT (4.1 Dokumenty o správě uživatelů )

Upravit

Pokud používáte C-Panel, stačí použijte rozhraní API . I když ano, má to své zvláštnosti, snáze se udržuje věci, které jej používají, spíše než ad-hoc obcházení. Spousta úspěšných aplikací jej používá bez problémů. Jako každé jiné rozhraní API musíte mít při jeho používání přehled o změnách.



  1. Oracle SQL Developer:Selhání – Test se nezdařil:Síťový adaptér nemohl navázat spojení?

  2. SQL dotaz „přátel přátel“.

  3. SELECT dotaz vrátí 1 řádek z každé skupiny

  4. Jak monitorovat PostgreSQL běžící uvnitř kontejneru Docker:Část první