Mac OS Snow Leopard: Почему значение mysql.default_socket не меняется на странице phpinfo()?

Mac OS Snow Leopard: Почему значение mysql.default_socket не меняется на странице phpinfo()?

Я получаю ошибки всякий раз, когда пытаюсь подключиться локально к 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.

Связанный контент