connessione MySQL remoto
-
21-08-2019 - |
Domanda
mi era stato facendo un web su localhost e quando ho provato a spostarlo su un host che mi mostra un sacco di errori. Sembra che non riesce a connettersi al mio database locale. Ecco il codice:
$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>";
Ed ecco l'output:
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:
Grazie per l'aiuto
Soluzione
E 'un problema di permessi utente mysql. Creare un nuovo utente con phpMyAdmin, per esempio e impostarlo dell'host localhost se ci si connette da localhost, o% se ci si connette dall'esterno.
Altri suggerimenti
Come indicato correttamente Alekc, si tratta di un problema di permessi:
È possibile farlo al prompt di MySQL:
grant all privileges on mydatabase.*
to youruser@'your_ip_address'
identified by 'your_password';
Seguita da una:
flush privileges;
E quindi provare a riconnettersi di nuovo. Tenete a mente che:
your_ip_adress: (? Il vostro server web) è non l'indirizzo IP del server MySQL ma l'indirizzo IP si sta collegando da your_password: è quello che si deve utilizzare quando si stabilisce la connessione sul lato PHP
Ricorda inoltre che, anche se questa soluzione dovrebbe funzionare, non è raccomandabile concessione tutti i privilegi per un utente che verrà utilizzato da un'applicazione web. Si può fare lo stesso con un minor numero di permessi.
Si può fare tutto questo con una bella interfaccia grafica. Io preferisco riga di comando.