conexão mysql remoto
-
21-08-2019 - |
Pergunta
Eu estava fazendo uma web em localhost e quando eu tentei para movê-lo no host ele me mostra muitos erros. Parece que ele não pode se conectar ao meu banco de dados local. Aqui está o código:
$host = "myip";
$user = "root";
$pass = "";
$db = "mydatabase";
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$on = mysql_fetch_row(mysql_query("SELECT COUNT(online) FROM characters WHERE online=1"));
echo "<br>Online: $on[0]<br><br>";
E aqui está a saída:
Warning: mysql_connect() [function.mysql-connect]: Host 'myip' is not allowed to connect to this MySQL server in * on line 46
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in * on line 48
Online:
Obrigado por ajuda
Solução
É um problema de permissão do usuário mysql. Criar um novo usuário com phpmyadmin por exemplo, e configurá-lo do hospedeiro para localhost se você conectar de localhost, ou% se estiver a ligar a partir do exterior.
Outras dicas
Como Alekc corretamente afirmou, é um problema de permissão:
Você pode fazer isso no MySQL prompt:
grant all privileges on mydatabase.*
to youruser@'your_ip_address'
identified by 'your_password';
seguido por um:
flush privileges;
E, em seguida, tentar voltar a ligar novamente. Tenha em mente que:
your_ip_adress: (servidor web) que de não endereço IP do servidor MySQL, mas o endereço IP você está se conectando a partir de your_password: é o que você deve usar ao estabelecer a conexão no lado PHP
Lembre-se também que, mesmo que esta solução deve funcionar, não é recomendável concessão todos os privilégios para um usuário que será usado por um aplicativo web. Você pode fazer o mesmo com menos permissões.
Você pode fazer tudo isso com um bom GUI frontend. Eu prefiro linha de comando.