Я перемещаю веб-сайт (php / mysql) с сервера Ubuntu на сервер OSX 10.6. Я настроил apache для запуска сценариев php и установил новейшую версию mysql на Mac. Я просто скопировал все файлы php и выгрузил / импортировал все базы данных mysql (включая базу данных пользователей mysql).
Когда я посещаю страницу, обслуживаемую на Mac, страница может подключаться к базе данных, но не запрашивать. Конкретно эта функция
mysql_error()
возвращает это сообщение об ошибке
NO SUCH FILE OR DIRECTORY
Причина, по которой это странно, заключается в том, что я могу изменить строки подключения php для mysql на сервере Ubuntu, чтобы он указывал на сервер Mac, и страница работала правильно (поэтому кажется, что mysql правильно настроен на Mac и определенно содержит все пользователи и таблицы должны).
Думая, что это как-то связано с правами доступа к файлам на Mac, я изменил все файлы 755, и это не помогло.
Любые идеи? Спасибо!!
ОБНОВЛЕНИЕ: я обнаружил эту ошибку, которая, я относительно уверен, связана с этой проблемой в / var / log / apache2 / error_log
PHP Warning: mysql_query(): A link to the server could not be established
Это сообщение об ошибке возвращается из вызова mysql_query или чего-то, что вы нашли в журнале mysqld или где-то еще? В первом случае вы можете использовать dtruss либо в самом процессе (ах) веб-сервера (что может быть непросто), либо в урезанной версии вашего кода, запускаемого с помощью php-cli. 'dtruss' позволит вам увидеть, какие файлы он пытается открыть, а какие не открывает.
«НЕТ ТАКОГО ФАЙЛА ИЛИ КАТАЛОГА» выглядит как ошибка веб-сервера. Если использование mysql_error () возвращает текст сообщения об ошибке, скопируйте все сообщение об ошибке с кодом ошибки:
CODE: MESSAGE
если вы не используете mysql_error (), добавьте вызов mysql_error () после проблемы mysql_query ().
PHP не может подключиться к MySQL. Добавьте проверку после mysql_connect ():
mysql_connect(..) or die('Could not connect: ' . mysql_error());