Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Criar usuário e banco de dados MySQL a partir do PHP


Esta resposta foi editada várias vezes com base em novas informações fornecidas pelo OP

O root é realmente permitido para se conectar ao servidor a partir do host do qual você está se conectando? Se a string de erro estiver retornando o nome canônico do servidor, há uma boa chance de que 'localhost' não esteja apontando para 127.0.0.1 :

Isso deve ecoar algo como "Acesso negado para usuário 'root'@localhost'", não o nome do servidor.

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

Editar (Depois de mais informações fornecidas nos comentários)

Se você estiver se conectando de um host totalmente diferente, informe ao MySQL [email protected]_hostname_or_ip tem permissão para se conectar e tem privilégios apropriados para criar um banco de dados e usuários.

Você pode fazer isso facilmente usando phpmyadmin (no servidor MySQL) ou uma consulta como:
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 ;

Eu aconselharia não nomear este usuário como 'root' , apenas crie um usuário com todos os privilégios globais necessários. No exemplo, usei 192.168.1.1, que poderia facilmente ser um nome de host, apenas certifique-se de que o DNS esteja configurado adequadamente. Especifique o host para corresponder exatamente como aparece nos logs quando você se conecta ao servidor remoto.

Você também pode querer ajustar os limites a gosto. Mais informações sobre o CREATE USER a sintaxe pode ser encontrada aqui , GRANT aqui .

Editar

Se estiver usando MySQL 4 - CREATE não é uma opção. Você usaria apenas GRANT (4.1 Docs On User Management )

Editar

Se estiver usando o C-Panel, apenas usar a API . Embora sim, ele tem suas peculiaridades, é mais fácil manter coisas que o usam em vez de soluções ad-hoc. Muitos aplicativos bem-sucedidos o usam sem problemas. Como qualquer outra API, você precisa ficar por dentro das mudanças ao usá-la.