PHP и MySQL в Mac OS X: доступ запрещен для пользователя графического интерфейса - PullRequest
3 голосов
/ 30 июля 2009

Я только что установил и настроил Apache, MySQL, PHP и phpMyAdmin на своем Macbook, чтобы иметь локальную среду разработки. Но после того, как я перенес один из моих проектов на локальный сервер, я получаю странную ошибку MySQL от одного из моих вызовов mysql_query ():

Доступ запрещен для пользователя '_securityagent' @ 'localhost' (используя пароль: НЕТ)

Прежде всего, все запросы, которые я отправляю в MySQL, действительны, и я даже протестировал их через phpMyAdmin с отличным результатом. Во-вторых, сообщение об ошибке появляется только здесь, в то время как у меня есть как минимум 4 других mysql-соединения и запросы на страницу. Этот вызов mysql_query () происходит в конце действительно длинной функции, которая обрабатывает данные для вновь созданных или измененных статей. Это в основном то, что он делает:

  1. Соберите все данные из формы статьи (название, содержание, даты и т. Д.)
  2. Проверка собранных данных
  3. Подключение к базе данных
  4. Динамическое построение SQL-запроса на основе проверенных данных статьи
  5. Перед закрытием соединения отправьте запрос в базу данных

Довольно простой, я знаю. Я не узнал имя пользователя «_securityagent», поэтому после быстрого поиска я натолкнулся на это в статье в Apple Developer Connection, где говорилось о некоторой случайной ошибке:

Инфраструктура безопасности Mac OS X решает эту проблему, используя графический интерфейс код как специальный пользователь, "_securityagent".

Так, как предложил Фрэнк в комментариях, я поместил var_dump () на все переменные, используемые в вызове mysql_connect (), и каждый раз он возвращает правильные значения (где имя пользователя не является, конечно, "_securityagent"). Поэтому мне интересно, есть ли у кого-нибудь идея, почему «агент безопасности» пытается подключиться к моей базе данных - и как я могу предотвратить возникновение этой ошибки при вызове mysql_query ().

Ответы [ 2 ]

1 голос
/ 02 августа 2009

Вы настроили свой локальный сервер AMP, используя готовый пакет, или установили MySQL, PHP и т. Д. Через соответствующие пакеты загрузки для конкретной ОС? Настройка Apache, MySQL и PHP4 / 5 может быть настоящей PITA.

Если у вас проблемы с настройкой Я бы порекомендовал MAMP . Это отличный универсальный пакет, который действительно делает свое дело. Вы по-прежнему можете получить доступ ко всем файлам конфигурации, которые вам нужны, и все содержится в папке MAMP, а не распространяется по всей системе. Если Apple обновит предустановленную версию Apache / PHP, ваша конфигурация компьютера не будет переопределена, как в случае использования предустановленной Apache / PHP.

1 голос
/ 31 июля 2009

Если имя пользователя не указано явно, MySQL пытается угадать его, используя имя текущего системного пользователя.

Вы не должны принимать это, вам просто нужно явно указать желаемое имя пользователя.

Как - это зависит от того, как вы подключаетесь. В случае phpMyAdmin это config.inc.php, добавьте строку как:

$cfg['Servers'][0]['user'] = 'Eirik';

(см. руководство )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...