%3F.png)
Я получаю ошибки всякий раз, когда пытаюсь подключиться локально к mySQL на Mac OS Snow Leopard 10.6.4. Я использую mySQL 5.1.46. Я могу войти с помощью консоли. Я использую PHP 5.3.2, и моя phpinfo()
страница работает нормально. Итак, у меня запущен PHP, я могу войти на сервер mySQL с помощью консоли и Sequel Pro.
Поэтому я подозревал, что это проблема с сокетом. В моем каталоге /etc нет php.ini, есть php.ini.default. Поэтому я захожу туда и везде, где вижу "default_socket", меняю его с:
/var/mysql/mysql.sock
к:
/tmp/mysql.sock
Я вижу это в следующих местах:
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock
А когда я пытаюсь подключиться к phpMyAdmin, я получаю следующую ошибку: Невозможно начать сеанс без ошибок. Проверьте ошибки, указанные в файле журнала PHP и/или веб-сервера, и правильно настройте установку PHP.
А когда я заглядываю в свой phpinfo()
файл, то вижу в mySQL следующее:
mysql.default_socket /var/mysql/mysql.sock /var/mysql/mysql.sock
Я перезапускаю Apache... черт, я перезапускаю весь компьютер. И все равно ничего. Я знаю, что MySQL работает, я знаю, что PHP работает, но я не могу заставить их говорить.
Любая помощь?
решение1
PHP должен искать файл php.ini (а не php.ini.default) для загрузки, поэтому попробуйте переименовать php.ini.default в php.ini. СмотретьУстановить Apache/PHP/MySQL на Snow Leopard.
решение2
Если вы не хотите возиться с настройками конфигурации для mysql или php, то воспользуйтесь этим хаком:
mkdir /var/mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Это создает псевдоним в месте, которое ищет PHP, который подключается к реальному mysql.sock.
решение3
Перенесите mysql.sock в PHP
Одна из проблем, возникших с MySQL и Leopard, — это расположение файла mysql.sock. Раньше расположение по умолчанию для этого файла было в каталоге /tmp. Теперь это расположение переместилось в каталог /var/mysql. PHP будет искать его там. К сожалению, расположение по умолчанию из MySQL по-прежнему будет помещать его в старое расположение. Мы можем исправить это, создав файл конфигурации my.cnf в каталоге /etc. Сохраните файл со следующим содержимым в /etc/my.cnf:
[клиент] сокет = /var/mysql/mysql.sock
[mysqld] сокет = /var/mysql/mysql.sock
В окне терминала введите следующие команды, чтобы создать каталог для файла sock:
sudo mkdir /var/mysql sudo chown _mysql /var/mysql
Источник:http://www.procata.com/blog/archives/2007/10/28/working-with-php-5-in-mac-os-x-105/
решение4
Для решения проблемы (Mac OS x) я сделал следующее:
1.) Сначала перейдите в корневой каталог Apache (путь доступен из /etc/apache2/httpd.conf -> DocumentRoot). Для меня это было /Library/WebServer/Documents/
1.1) Создайте showphpconfig.php в этом месте
2.) Откройте этот файл в своем браузере:http://127.0.0.1/showphpconfig.php
Это покажет вам, какой файл конфигурации использует ваш сервер Apache.
Для меня это было использование/private/etc/php.ini
Я также увидел, что php использует файл mysql sock из/var/mysql/mysql.sock
3.) Я сделал копию файла php.ini. Откройте его и найдите все строки, в которых есть mysql.sock.
скопируйте эти строки и создайте новую запись, как показано ниже -
;pdo_mysql.default_socket=/var/mysql/mysql.sock
pdo_mysql.default_socket=/tmp/mysql.sock
ИМП";" перед первой строкой, то есть комментирование первой строки.
Таких строк должно быть около 4.
Теперь вы сообщили php, что файл сокета mysql на самом деле присутствует в папке /tmp.
4.) перезапустите сервер Apache -apachectl restart
И вы должны увидеть экран конфигурации WordPress.