sql >> Database >  >> Database Tools >> phpMyAdmin

toegang geweigerd voor gebruiker na het verplaatsen van de MySQL-database naar een externe server

MySQL-machtigingen zijn gebaseerd op het adres waarmee ze verbinding maken, evenals op de gebruiker. Dus [email protected] en [email protected] heeft twee afzonderlijke machtigingen. Het wijzigen van localhost naar 127.0.0.1 zoals genoemd num8er zal waarschijnlijk werken als uw code en de database zich op dezelfde server bevinden.

Als je terminaltoegang hebt tot het vak waar je php zich bevindt, kun je proberen om rechtstreeks verbinding te maken, zodat je niets met php te maken hebt door dit te gebruiken:

mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"

Let op er is geen spatie tussen -p en het wachtwoord. Als dit lukt, krijgt u een lijst met tabellen in de database .

Om toegang te verlenen aan andere gebruikers of voor een andere hostnaam/IP, wil je iets in de trant van dit uitvoeren:(hoewel je echt een aparte gebruiker zou moeten maken met meer beperkte rechten op basis van je vereisten).

GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';

Bekijk hier de documenten over GRANT van MySQL - http://dev.mysql .com/doc/refman/5.7/en/grant.html

Even terzijde:pomp alsjeblieft geen oude gegevens in een query zonder op zijn minst mysql_real_escape_string te gebruiken (http://php.net/manual/en/ function.mysql-real-escape-string.php ) op voorhand. Je zou ook kunnen kijken naar PDO (http://php. net/manual/en/book.pdo.php ) die over het algemeen de voorkeur heeft boven de nu verouderde mysql_ functies




  1. Hoe installeer je dienovereenkomstig een juiste versie phpmyadmin op Centos 6.9?

  2. DATETIME en TIMESTAMP Lengte/waarden Fout

  3. phpMyAdmin + CentOS 6.0 - Verboden

  4. SQL-query geeft verkeerde resultaten