MySQL разрешенията се основават на адреса, към който се свързват, както и на потребителя. Така че [email protected] и [email protected] ще има два отделни набора от разрешения. Промяната на localhost на 127.0.0.1, както е споменато num8er, вероятно ще работи, ако вашият код и базата данни са на един и същ сървър.
Ако имате терминален достъп до кутията, в която е вашият php, можете да опитате да се свържете директно, като изключите каквото и да било общо с php, като използвате това:
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Обърнете внимание, че няма интервал между -p
и паролата. Ако е успешно, това ще ви даде списък с таблици в database
.
За да предоставите достъп на други потребители или за друго име/IP на хост, ще искате да изпълните нещо по следния начин:(въпреки че наистина трябва да създадете отделен потребител с по-ограничени разрешения въз основа на вашите изисквания).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Вижте документите за GRANT на MySQL тук - http://dev.mysql .com/doc/refman/5.7/en/grant.html
Като странична бележка - моля, моля, моля, не изпомпвайте само стари данни в заявка, без поне да използвате mysql_real_escape_string
(http://php.net/manual/en/ function.mysql-real-escape-string.php
) върху него преди ръка. Можете също да разгледате PDO (http://php. net/manual/en/book.pdo.php
), което обикновено е предпочитано пред вече отхвърления mysql_
функции