WP CLI «Ошибка при установлении соединения с базой данных» на локальном хосте (MAMP)


13

Я получаю эту ошибку при попытке создать что-то с помощью WP CLI:

Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we cant contact the database server at `localhost`. This could mean your hosts database server is down.

Но я могу открыть сайт по ссылке: http: // localhost: 8888 / projectname

Есть идеи?

Ответы:


27

Зайдите в wp-config.phpи изменить ваши DB_HOSTк 127.0.0.1вместо локального хоста.

Кредит идет к Крейгу Уэйну выше в комментариях.


2
В MAMP Pro я также должен был проверить «Разрешить сетевой доступ к MySQL», чтобы это работало.
Ник М

Я пробовал это, но без помощи. Я использую шаблон Bedrock. Я перебирал wp-config и .env файл снова и снова, просматривал конфиги MAMP снова и снова. Отладил файл wb-db.php. Затем я удалил # из строки DB_HOST в .env, и все хорошо.
Том

@Tom Попробуйте это tommcfarlin.com/install-wp-cli-with-mamp, прежде чем сменить хост в wp-config.php. Он должен работать.
Мария Даниэль Дипак

5

Для меня ответ был изменить настройку для , DB_HOSTчтобы 127.0.0.1:8889вместо localhostв wp-config.php, а также флажок «Разрешить доступ к сети MySQL» в настройках MySQL. Установка порта на порт, который MAMP Pro использует для базы данных, была критически недостающей частью, которую я не видел в других ответах здесь. YMMV.


4

Убедитесь, что используете бинарный файл MAMP PHP. Вы можете проверить, с какой версией PHP CLI WP работает

php wp-cli.phar --info

Чтобы использовать последнюю версию MAMP PHP, вам нужно изменить свой профиль bash или zsh:

PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH

Обязательно перезагрузите профиль:

source ~/.bash_profile

Убедитесь, что изменения применяются правильно:

  php wp-cli.phar --info

1
Эта первая команда просто дает ошибкуCould not open input file: wp-cli.phar
Феликс Ив

Вы запускали команду в корневой папке WordPress?
Знаете

да, но wp-cli.pharв корне каталога WP нет файла .
Феликс Ив

Здесь вы можете найти больше информации о том, как установить wp-cli.phar: ( wp-cli.org )
eknows

2
@FelixEve, если во время установки вы переместились wp-cli.pharпод /usr/local/bin/wp, вы можете wp --infoвместо этого выдать : отображаемый PHP binaryдолжен быть тот, который находится под вашей установкой WP.
PJ_Finnegan

0

Шаг 1: проверьте, работает ли на вашем сервере MySQL Шаг 2: если да, то вы можете войти в MySQL, используя

mysql -u root -p

затем введите свой пароль: (вы должны использовать эту команду из терминала), затем используйте следующую команду, чтобы убедиться, что база данных существует:

show databases;
grant all privileges on database_name.* to 'root'@'localhost' identified by 'password';
flush privileges;
exit;

Теперь отредактируйте файл wp-config.php и найдите

define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

Теперь перезагрузите сервер и попробуйте войти в свою панель управления WordPress. Я надеюсь, что это помогает.


«mysql -u root -p» дает мне «Доступ запрещен для пользователя 'root' @ 'localhost' (с использованием пароля: YES)"
Klevis Miho

когда вы настраиваете свою базу данных mysql, вы должны были ввести пароль. Используйте этот пароль. Если вы не настраивали пароль во время установки базы данных mysql, просто нажмите ввод вместо любого пароля.
индивидуалист

Я сделал то, что вы написали. Можно подключиться к базе данных с помощью «mysql -u root -p». Также предоставляются привилегии. Но ошибка все еще там.
Клевис Михо

1
Я обнаружил, что если я изменил localhost на 127.0.0.1 в моем wp-config.php, все работает нормально ... я чувствую, что здесь есть большая проблема
Крейг Уэйн

1
С чистой установкой WordPress v3.6.9 и WP-CLI v1.5.1 решение @CraigWayne работало отлично.
мозгом

0

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

PHP Warning:  mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Warning:  mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562

В соответствии с этим вопросом эта проблема возникает из-за того, что по умолчанию для MySQL 8.0 используется кодировка utfmb4.

Фактически, я мог повторить ошибку, обновив MySQL 5.7 до MySQL 8.0

Я решил проблему, экспортировав базу данных, опустившись до MySQL 5.7 и повторно импортировав данные. Я также провел тесты на MariaDB 10.3, и он отлично работает.



0

Есть две части этого, которые должны работать вместе:

- Вам нужно переключиться с localhostна 127.0.0.1и добавить номер порта в конце. Для меня это было 127.0.0.1:3306.

Номер порта находится на панели MySQL в Mamp.

введите описание изображения здесь

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.