Я только что установил и настроил Apache, MySQL, PHP и phpMyAdmin на своем Macbook, чтобы иметь локальную среду разработки. Но после того, как я перенес один из моих проектов на локальный сервер, я получаю странную ошибку MySQL от одного из моих вызовов mysql_query ():
Доступ запрещен для пользователя
'_securityagent' @ 'localhost' (используя
пароль: НЕТ)
Прежде всего, все запросы, которые я отправляю в MySQL, действительны, и я даже протестировал их через phpMyAdmin с отличным результатом. Во-вторых, сообщение об ошибке появляется только здесь, в то время как у меня есть как минимум 4 других mysql-соединения и запросы на страницу. Этот вызов mysql_query () происходит в конце действительно длинной функции, которая обрабатывает данные для вновь созданных или измененных статей. Это в основном то, что он делает:
- Соберите все данные из формы статьи (название, содержание, даты и т. Д.)
- Проверка собранных данных
- Подключение к базе данных
- Динамическое построение SQL-запроса на основе проверенных данных статьи
- Перед закрытием соединения отправьте запрос в базу данных
Довольно простой, я знаю. Я не узнал имя пользователя «_securityagent», поэтому после быстрого поиска я натолкнулся на это в статье в Apple Developer Connection, где говорилось о некоторой случайной ошибке:
Инфраструктура безопасности Mac OS X решает эту проблему, используя графический интерфейс
код как специальный пользователь, "_securityagent".
Так, как предложил Фрэнк в комментариях, я поместил var_dump () на все переменные, используемые в вызове mysql_connect (), и каждый раз он возвращает правильные значения (где имя пользователя не является, конечно, "_securityagent"). Поэтому мне интересно, есть ли у кого-нибудь идея, почему «агент безопасности» пытается подключиться к моей базе данных - и как я могу предотвратить возникновение этой ошибки при вызове mysql_query ().