2012-05-03 3 views
0

Я получаю сообщение об ошибке «отказ в доступе при попытке подключения к базе данных. Вот код:подключение к базе данных MySQL через доступ к PHP отрицается

<?php 
    mysql_connect("00.00.00.00:00000","user","pass"); 
    mysql_select_db("dbname"); 

    $q=mysql_query("CALL GetMaterialInfo('".$_REQUEST['user']."','".$_REQUEST['pass']."','6c3e91d3')"); 
    while($e=mysql_fetch_assoc($q)) 
     $output[]=$e; 

    print(json_encode($output)); 

    mysql_close(); 
    ?> 

Я изменил IP-адрес хоста, конечно (его не все нули), а имя пользователя и пароль и имя базы данных. Я уверен, что пользователь и пароль, как и IP-адрес хоста, и номер порта, и имя базы данных верны. Мне удалось подключиться к базе данных Allready с разъемом JDBC, но он дает следующее сообщение об ошибке с помощью PHP скрипт:

<b>Warning</b>: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: Access denied for user 'username'@'192.168.1.1' (using password: YES) in <b>/www/zxq.net/t/e/s/testphpbach/htdocs/Connection.php</b> on line <b>2</b><br /> 


+0

У вас есть запись для 192.168.1.1 в/etc/hosts – Satya

+2

Вы * не * используете правильное имя пользователя и пароль * или * пользователю не разрешен доступ с вашего хоста. Это проблема с конфигурацией, и сообщение об ошибке сообщает вам все, что вам нужно знать. – hakre

+0

Вы либо не используете правильное имя пользователя и пароль, либо выбранное имя пользователя не имеет доступа с этого узла – Anigel

ответ

3

вы, вероятно, вход с тем же именем пользователя/пароль из PHPMyAdmin успешно, но может Войдите в систему с php, если хост не является localhost. У меня такая же проблема. Перейдите в mysql и дайте разрешение для этого пользователя на вход со всех хостов (%), или на IP-адрес конкретного хоста, на котором запущен ваш PHP-код.

4

вам необходимо выполнить следующие проверки:

  1. Убедитесь, что 192.168.1.1 включен в/и т.д./хостов. Если ваш db находится на компьютере с локальным хостом, попробуйте использовать localhost вместо ip.
  2. Проверьте, открыт ли порт. Попробуйте использовать telnet (например, ip/localhost) . например telnet localhost 2222
  3. Проверьте, есть ли в базе данных предоставленные привилегии для вашего имени пользователя и пароля. Для проверки привилегий используйте SHOW GRANTS [FOR user]. Дополнительная информация может быть найдена here Если это не работает, попробуйте использовать другого пользователя, кроме стандартного.
    Сообщите, что будет
1

Гавриил, ты спас мне мир боли.

я ранее получаю сообщение об ошибке MySQL 'отказано в доступе для пользователей ...

решение для моей удаленной проблемы доступа в PHP был предоставить доступ ко всем узлам в Cpanel «%»

Кроме того, чтобы выяснить ваш mysql веб-хост и порт, выполните команду sql 'show variables' в вашей базе данных. переменные «hostname» и «port» расскажут вам, что вам нужно знать для подключения базы данных mysql.

Еще одна вещь, которую следует отметить, - убедиться, что пользователь, которого вы создали, фактически добавлен в базу данных.

Смежные вопросы