Это будет короткий пост, но мы сочли это необходимым, поскольку нам приходилось сталкиваться с этим нестандартным способом, учитывая нашу ситуацию. Мы решили поиграть с 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, мы решили, что это может быть проблемой.
В конце концов, вот как выглядит наш wp-config.php, и теперь все работает:
/** MySQL hostname */ define('DB_HOST', '127.0.0.1:8889');
Мы надеемся, что сможем спасти кому-то лишнее время в решении этой проблемы.