WP CLI «Помилка встановлення підключення до бази даних» у localhost (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 / ім'я проекту

Будь-яка ідея?

Відповіді:


27

Зайдіть у свій wp-config.phpі змініть свій DB_HOSTна, 127.0.0.1а не на localhost.

Кредит йде до Крейга Уейна вище в коментарях.


2
У програмі MAMP Pro я також повинен був перевірити "Дозволити доступ до мережі MySQL", щоб це працювало.
Нік М

Я спробував це, але ніякої допомоги. Я використовую котло Bedrock. Я переходив через wp-config і .env файл знову і знову, через MAMPs конфігурації знову і знову. Налагоджено файл wb-db.php. Потім я видалив # з рядка DB_HOST у .env, і все добре.
Том

@ Спробуйте цей tommcfarlin.com/installing-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 використовується версія WP CLI

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?
eknows

так, але 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 Step2: якщо так, то ви можете увійти в 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 "(з використанням пароля: ТАК)"
Klevis Miho

під час налаштування бази даних mysql ви повинні ввести пароль. Використовуйте цей пароль. Якщо ви не налаштували пароль під час створення бази даних mysql, просто натисніть клавішу Enter, а не пароль.
maverick

Я зробив те, що ви написали. Можна підключитися до бази даних за допомогою "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 є типова схема для MySQL 8.0 utfmb4.

Насправді я міг повторити помилку, перейшовши з MySQL 5.7 на MySQL 8.0

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


0

У моєму випадку я повинен був робити те, що пропонував eknows, запропонований у своєму рішенні ( https://wordpress.stackexchange.com/a/313862/172520 ) І звичайно дозволяючи мережевий доступ до MySQL для мого Mac (використовуючи MAMP Pro).


0

Є дві частини цього, які потрібно працювати разом:

- Вам потрібно перейти від localhostдо 127.0.0.1і додати номер порту в кінці. Для мене це було 127.0.0.1:3306.

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.