Le autorizzazioni MySQL si basano sull'indirizzo a cui si stanno connettendo e sull'utente. Quindi [email protected] e [email protected] avrà due set separati di autorizzazioni. La modifica di localhost in 127.0.0.1 come menzionato da num8er probabilmente funzionerà se il tuo codice e il database si trovano sullo stesso server.
Se hai l'accesso da terminale alla casella in cui si trova il tuo php, puoi provare a connetterti direttamente escludendo qualsiasi cosa abbia a che fare con php usando questo:
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Nota che non c'è spazio tra -p
e la password. In caso di successo, otterrai un elenco di tabelle nel database
.
Per concedere l'accesso ad altri utenti o per un altro nome host/IP, vorrai eseguire qualcosa sulla falsariga di questo:(sebbene dovresti davvero creare un utente separato con autorizzazioni più limitate in base alle tue esigenze).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Controlla i documenti su GRANT di MySQL qui - http://dev.mysql .com/doc/refman/5.7/en/grant.html
In una nota a margine:per favore, per favore, per favore, per favore non semplicemente pompare vecchi dati in una query senza almeno usare mysql_real_escape_string
(http://php.net/manual/en/ function.mysql-real-escape-string.php
) su di esso in anticipo. Puoi anche esaminare PDO (http://php. net/manual/en/book.pdo.php
) che è generalmente preferito rispetto all'ormai deprecato mysql_
funzioni