Uprawnienia MySQL są oparte na adresie, z którym się łączą, a także na użytkowniku. Tak więc [email protected] i [email protected] będzie miał dwa oddzielne zestawy uprawnień. Zmiana localhosta na 127.0.0.1, jak wspomniano o numerze num8er, prawdopodobnie zadziała, jeśli twój kod i baza danych znajdują się na tym samym serwerze.
Jeśli masz dostęp terminalowy do skrzynki, w której znajduje się twój php, możesz spróbować połączyć się bezpośrednio, wykluczając cokolwiek związanego z php za pomocą tego:
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Zauważ, że nie ma spacji między -p
i hasło. Jeśli się powiedzie, otrzymasz listę tabel w database
.
Aby przyznać dostęp innym użytkownikom lub innej nazwie hosta/IP, będziesz chciał uruchomić coś w następujący sposób:(chociaż naprawdę powinieneś utworzyć oddzielnego użytkownika z bardziej ograniczonymi uprawnieniami w oparciu o twoje wymagania).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Sprawdź dokumentację na temat GRANT MySQL tutaj - http://dev.mysql .com/doc/refman/5.7/en/grant.html
Na marginesie - proszę, proszę, proszę, nie pompuj żadnych starych danych do zapytania bez użycia przynajmniej mysql_real_escape_string
(http://php.net/manual/en/ function.mysql-real-escape-string.php
) przed rozdaniem. Możesz również zajrzeć do PDO (http://php. net/manual/en/book.pdo.php
), który jest ogólnie preferowany w stosunku do przestarzałego mysql_
funkcje