As permissões do MySQL são baseadas no endereço ao qual eles estão se conectando, bem como no usuário. Portanto, [email protected] e [email protected] terá dois conjuntos separados de permissões. Alterar localhost para 127.0.0.1 como num8er mencionado provavelmente funcionará se seu código e o banco de dados estiverem no mesmo servidor.
Se você tiver acesso de terminal à caixa onde está seu php, tente conectar diretamente, descartando qualquer coisa a ver com php usando isto:
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Observe que não há espaço entre
-p
e a senha. Se for bem-sucedido, você obterá uma lista de tabelas no database
. Para conceder acesso a outros usuários ou para outro nome de host/IP, você deve executar algo como isto:(embora você deva realmente criar um usuário separado com permissões mais restritas com base em seus requisitos).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Verifique os documentos sobre GRANT do MySQL aqui - http://dev.mysql .com/doc/refman/5.7/en/grant.html
Em uma nota lateral - por favor, por favor, por favor, não coloque quaisquer dados antigos em uma consulta sem pelo menos usar
mysql_real_escape_string
(http://php.net/manual/en/ function.mysql-real-escape-string.php
) sobre ele antes. Você também pode procurar no PDO (http://php. net/manual/en/book.pdo.php
) que geralmente é preferido sobre o agora obsoleto mysql_
funções