Ошибка базы данных WP Неизвестный столбец 'wp_' в 'списке полей' для запроса SELECT wp_ - PullRequest
0 голосов
/ 07 мая 2020

Пожалуйста, не закрывайте этот вопрос, это не дубликат, и предлагаемая ссылка, объясняющая, как использовать кавычки на MySQL, ничего не делает для меня, поскольку эта проблема находится внутри сценария WP. Спасибо

Я пытаюсь установить WP 5.4.1 на clean Windows 2019 серверную виртуальную машину.

Я не использовал Microsoft Web Platform Installer поскольку он загружает старые версии WP / MySQL и PHP, поэтому я пытаюсь установить с нуля.

Вот шаги, которые я предпринял:

  • Загрузил и установил последнюю PHP 7.4.5, небезопасную версию, и установил ее
  • переименовал php.ini-production в php.ini
  • Отредактировал php .ini в:

    • upload_max_filesize = 64M
    • post_max_size = 64M
    • max_execution_time = 300
    • extesion = mysqli (здесь удалена точка с запятой, поскольку PHP требуется этот драйвер для подключения в MySQL8)
  • В IIS я создал сопоставление *. php и добавил default. php и index. php

  • Создан фиктивный phpinfo.php файл и протестирован на IIS, все работает правильно, а phpinfo () показывает данные

  • Загружен MySQL 8.0.20 и установлен с фолло Параметры крыла:

    • Только сервер
    • Автономный
    • Серверный компьютер
    • В качестве метода аутентификации я выбираю «Использовать шифрование пароля Stron», как предложено установщик PHP
  • добавил папку MySQL BIN в path переменную среды

  • открыл %PROGRAMDATA%\MySQL\MySQL Server 8.0\my.ini и отключил sha2 и включите native_password:

    • ; default_authentication_plugin = caching_sha2_password
    • default_authentication_plugin = mysql_native_password
  • создал новую базу данных для WP, названную wp1 (в MySQL 8 «один лайнер» для создания пользователя и предоставления доступа одновременно не работает, поэтому нам нужно сделать это в 2 строки)

  mysql -u root -p
  create database wp1;
  CREATE USER ‘wp1’@’%’ IDENTIFIED BY ‘password’;
  GRANT ALL PRIVILEGES ON wp1.* TO ‘wp1’@’%’;
  FLUSH PRIVILEGES;
  EXIT
  • создал папку C:\intepub\wwroot\wp1 и предоставил полный доступ к группам IUSR и Users windows, чтобы WP мог записывать файлы конфигурации

  • В IIS щелкните правой кнопкой мыши Default Web Site и щелкните Add Application, указывая на новую wp1 папку * 1 097 *

  • перейдите к localhost/wp1, чтобы начать установку WP

Итак, после выбора языка и ввода информации БД я получаю эту ошибку

WordPress database error Unknown column ‘wp_’ in ‘field list’ for query SELECT wp_

После нескольких часов борьбы с этим, вот что я обнаружил:

  • ошибка пришла из БД, а не из WP.
  • пробовал с wp1 и root пользователей во время установки
  • пробовали как localhost, так и 127.0.0.1 во время установки
  • ошибка возникает в файле setup-config. php, строка 315 $ wpdb-> query ("SELECT $ prefix")
  • кажется, что проблема в том, что на MySQL приходит строка select wp_ insted из select 'wp_' (обратите внимание на отсутствующие кавычки)
  • Если я go to MySQL и выполнить select wp_ Я получаю ту же ошибку

Таким образом, проблема, похоже, связана с тем, как MySQL 8.0 обрабатывает кавычки в запросе, который он получает от установщика WP …

Я восстановил снимок непосредственно перед установкой MySQL 8.0.20 и на этот раз вместо Use Strong Password Encryption for Authentication I s выбрано Use Legacy Authentication Method (Retain MySQL 5.x Compatibility), но ошибка осталась прежней

Прежде чем отвечать, пожалуйста, примите во внимание:

  • Я ищу решение проблемы, а не обсуждение того, что я должен использовать MySQL 5.x вместо MySQL 8.x
  • Да, подключение к базе данных в порядке, это не проблема, прочтите, пожалуйста, весь мой пост
  • Да, wp -config записывается с правильными значениями

Несмотря на то, что я видел много сообщений с этой же ошибкой на форуме WP, обычно на них нет ответа или ответ не имеет никакого смысла (например, с просьбой к OP проверить учетные данные БД и записать доступ к папке WP), я все еще писал на форуме WP , но пока не ответил.

Извините за плохое форматирование!

Кто-нибудь может помочь?

1 Ответ

1 голос
/ 09 мая 2020

Наконец обнаружил проблему ...

TL; DR; отредактируйте свой php.ini и убедитесь, что у вас есть оба:

display_errors = On

error_log = php_errors.log

Настройка error_log решает проблему ... Я предполагаю, что когда error_log не имеет значения (конфигурация по умолчанию), PHP решает отправить ошибка возвращается в вызывающую программу, что приводит к сообщению об ошибке column 'wp_' in 'field list' во время установки WP.

Подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...