от
Я получаю следующее сообщение об ошибке: Доступ запрещен для localhost пользователь 'Апач'@'' (используя пароль: нет) При использовании следующего кода:

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

12 Ответы

0 голосов
от
Я получаю следующее сообщение об ошибке: Доступ запрещен для localhost пользователь 'Апач'@'' (используя пароль: нет) При использовании следующего кода:
0 голосов
от
И если это имеет значение, сервер Apache@localhost-это не имя учетной записи пользователя, который я использую, чтобы попасть в базу данных. У меня нет учетных записей с именем Apache в них вообще. Если он говорит 'в Apache@localhost' а имя пользователя не передается правильно к MySQL подключение. 'Апач' обычно пользователь, запускающий файл httpd процесс (по крайней мере в RedHat-based систем) и если имя не передается во время подключения к MySQL использует, кто призывает к связи. Если вы делаете соединение прямо в скрипте, а не в называется файл, получаете ли вы такие же ошибки?
0 голосов
от
Изменения включают в себя() требуется(). Если файл "connect.php" не может быть требуем()D, то скрипт завершается с ошибкой неустранимая ошибка, в то время как включают() генерирует предупреждение. Если логин, который вы передаете в функцию mysql_connect() не "Апач", неправильный путь к скрипту подключения-это наиболее распространенный способ получить этот тип ошибки.
0 голосов
от
Не забудьте проверить ваши логи ошибок базы данных. Вы должны быть в состоянии, чтобы увидеть, если вы даже попав в ДБ. Если вы не, вы должны проверить ваши правила брандмауэра на поле. На Linux можно запустить в iptables -L, чтобы получить список правил брандмауэра. В противном случае это будет чисто вопрос доступа. Сделать "выбрать * из MySQL.пользователя", чтобы увидеть, если пользователь Apache является даже там. Далее, я бы порекомендовал создавать аккаунт специально для вашего приложения, в отличие от использования Apache, поскольку любое другое приложение вы создаете, будет работать как Apache по умолчанию и может получить несанкционированный доступ к вашей БД. Просто посмотри "грант" в документации @ dev.mysql.com чтобы получить более подробную информацию. Если у вас есть более конкретные вопросы, касающиеся БД, просто отредактируйте свой вопрос, и я посмотрю.
0 голосов
от
Работает скрипт connect.php на самом деле сделать соединение или это просто определить функцию нужно вызвать, чтобы создать соединение? Ошибки вы получаете, это симптом не имея ранее сложившиеся связи. ЕТА: также изменения относятся к требуется. Я подозреваю, что это не на самом деле, включая файл. Но включить может завершиться сбоем.
0 голосов
от
Чувак ответ-большое дело! которые, к сожалению, мне потребовалось некоторое время, чтобы выяснить, как хорошо. Вероятно, у вас есть функция, как dbconnect() и вы используете переменные из файла Include для подключения. $Конн = функцию mysql_connect($dbhost, $dbuser, то $dbpass в качестве). Ну так это внутри функции переменные из файла включения должны быть переданы функции, иначе функция не будет знать, что $dbhost, $dbuser и $dbpass в качестве является. Способ исправить это, чтобы сделать эти переменные глобальными, так что ваши функции может их забрать. Другое решение, которое не очень безопасно будет выписать вас хост, пользователя и передавать в функцию функцию mysql_connect. Надеюсь, что это помогает, Но у меня была та же проблема.
0 голосов
от
Если действительно Вы не в состоянии вставить, используя одни и те же призывы связи, ваша проблема скорее всего лежит в пользователя "Apache", не имея разрешения Select на базе. Если у вас есть phpMyAdmin и установить вы можете посмотреть на разрешения для пользователя в области права. phpMyAdmin и также делает его очень легко изменить разрешения. Если у вас есть только доступ к командной строке, вы можете проверить разрешения из базы данных MySQL. Вы, вероятно, нужно сделать что-то вроде: Грант выберите на данных mydatabase.mytable в 'Апач'@'localhost'а;
0 голосов
от
Ты не забыл сделать:
flush privileges;
Если пользователь не задан, то он будет давать 'Апач'ошибка@'localhost' а.
0 голосов
от
Просто чтобы проверить, если вы используете только эту часть, вы получаете сообщение об ошибке?
0 голосов
от
Просто чтобы проверить, если вы используете только эту часть, вы получаете сообщение об ошибке? Если это так, вы все еще получаете сообщение об ошибке, если вы скопируйте и вставьте один из тех, кто вставляет в эту >страницу, Я пытаюсь увидеть, если это местные на страницу или эту фразу. Также вы можете отправить копию подключения звонков (без паролей), если вставок >использовать точно такой же синтаксис, как в этом примере. Вот что есть в файле connection.php . Я связал файл через включить таким же образом, как когда я выполнить запросы INSERT, в другом месте в коде.
$conn = mysql_connect("localhost", ******, ******) or die("Could not connect");
mysql_select_db("adbay_com_

Я постараюсь рабочая вставить запрос в этой области, чтобы проверить.

Как и другие сообщения об этом пароль доступа. Я сделал, как указано в моем первом постинге, проверить разрешения. Я использовал phpmyadmin для проверки разрешений для учетной записи Пользователя, я использовал были правильными. И если это имеет значение, сервер Apache@localhost-это не имя учетной записи пользователя, который я использую, чтобы попасть в базу данных. У меня нет учетных записей с именем Apache в них вообще.
...