Ошибка подключения к базе данных Wordpress — PHP7 с использованием MAMP

У меня есть локальная среда разработки с использованием MAMP Pro, а веб-сайт Wordpress успешно работает с использованием PHP 5.6.8. Изменение хоста на PHP 7.0.13 (и ничего больше не меняя) приводит к ошибке:

Предупреждение: mysqli_real_connect(): (HY000/2002): Нет такого файла или каталога в [отредактированный путь]/wp-includes/wp-db.php в строке 1538

Ошибка подключения к базе данных

Это либо означает, что информация об имени пользователя и пароле в вашем файле wp-config.php неверна, либо мы не можем связаться с сервером базы данных по адресу localhost:3306. Это может означать, что сервер базы данных вашего хоста не работает.

Снимок экрана с полной ошибкой

wp-config.php определенно имеет правильное имя пользователя, пароль, имя хоста, и база данных работает. Решения подобных проблем/предупреждений предполагают, что путь к сокету MySQL в файле php.ini может быть неправильным, но я сравнил этот файл в двух версиях php, и они одинаковы.

Я использую последние версии MAMP Pro (4.1) и Wordpress (4.7.4), а также OS X (10.12.4). Кроме того, веб-сайт снова работает нормально при смене хоста на PHP 5.6.8.

Не знаю, что еще сделать/проверить. Любые мысли очень ценятся.


person AnotherUID    schedule 24.04.2017    source источник


Ответы (2)


Более поздняя версия Wordpress 4.6 не поддерживается в Php 7.0, поэтому переустановите Php 5.6 и проверьте, работает ли .so.

person Maulik patel    schedule 24.04.2017
comment
Вы имеете в виду, что есть проблема с определенной версией Wordpress? поскольку Wordpress поддерживает PHP7 в течение нескольких лет/выпусков, вот текущие требования wordpress.org/about/requirements< /а> - person AnotherUID; 24.04.2017

После обновления до PHP7 нужно проверить путь к mysql.sock.

Откройте файл php.ini и исправьте путь

mysql.default_socket = /Applications/MAMP/bin/IDONTKNOW...../mysql.sock
person kawa    schedule 24.04.2017
comment
Путь mysql.sock одинаков в файле 5.6.8 php.ini и файле 7.0.13 php.ini, а именно: mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock - person AnotherUID; 24.04.2017
comment
хм, вы пробовали 172.0.0.1 вместо localhost в конфигурации Wordpress? - person kawa; 24.04.2017
comment
Только что попробовал 172.0.0.1 и 172.0.0.1:3306... в обеих версиях php... получаю ошибку внутреннего сервера 500 - person AnotherUID; 24.04.2017
comment
Итак, вы получаете ошибку сервера 500 после того, как изменили адрес подключения с localhost:3306 на 127.0.0.1:3306, продолжая использовать PHP5.6.8? Этого не должно происходить. Проверьте файл /etc/hosts, есть ли запись для 127.0.0.1 localhost. - person kawa; 24.04.2017