Поиск по сайту:
Трусость — мать жестокости (М. Монтень).

Исправление предупреждения PHP: mysqli_real_connect(): (HY000/2002): with WP CLI and MAMP

[wtr-time]
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
26.04.2019
Исправление предупреждения PHP: mysqli_real_connect(): (HY000/2002): with WP CLI and MAMP

Это будет короткий пост, но мы сочли это необходимым, поскольку нам приходилось сталкиваться с этим нестандартным способом, учитывая нашу ситуацию. Мы решили поиграть с WP CLI, но столкнулся с несколькими проблемами конфигурации.

Его было достаточно просто установить, но мы получили ряд ошибок после выполнения следующей команды:

 	wp scaffold _s

 

Трассировка стека ошибки началась с чего-то, связанного со следующим сообщением об ошибке, выгруженным PHP:

 	PHP Warning: mysqli_real_connect(): (HY000/2002): Connection refused in /path/to/wordpress/wp-includes/wp-db.php on line 1531

 

И затем это закончилось более дружественной, но немного менее полезной ошибкой от WP CLI:

 	Error: Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we can’t contact the database server at `127.0.0.1`. This could mean your host’s database server is down.

 

Мы пол дня возились с локальными базами данных, поэтому решили, что это что-то напортачило. Проверив, что все работает, и мы не поменяли местами порты в MAMP и вышли в Stack Overflow.

Мы нашли несколько ответов,  которые объясняют суть проблемы в том, что класс PHP  mysqli_real_connect( ) пытается получить доступ к базовому сокету UNIX способом, который не очень хорошо работает с  localhost.

Мы не разбирались в том, что на самом деле происходит на системном уровне, так как мы просто хотели более чистый способ начать новую тему. В нескольких ответах предлагается изменить  localhost на локальный IP-адрес, такой как 127.0 .0 .1, но это, похоже, не решило проблему полностью, что привело обратно к MAMP и MySQL Workbench.

Основываясь на подробных ответах по переполнению стека, похоже, что класс PHP ожидает, что SQL будет работать на порте по умолчанию, который обычно равен 3306. Поскольку наша версия MAMP по умолчанию использует порт 8889, мы решили, что это может быть проблемой.

Читать  Поддерживает ли MySQL материализованные представления?

В конце концов, вот как  выглядит наш wp-config.php, и теперь все работает:

 	/** MySQL hostname */
 	define('DB_HOST', '127.0.0.1:8889');

 

Мы надеемся, что сможем спасти кому-то лишнее время в решении этой проблемы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Если статья понравилась, то поделитесь ей в социальных сетях:

Читайте также

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

**ссылки nofollow

Рекомендуемое
Многие популярные веб-сайты делают все возможное и создают специальные приложения…

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: