Ошибка обновления базы

Проблемы с установкой или работой phpBB 3.0.x? Получите помощь здесь!
С 1 января 2017 года phpBB Group прекращает поддержку phpBB версии 3.0.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.0 до 1 июля 2017 года.
Подробнее: Окончание поддержки phpBB 3.0.
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
NordWest

Ошибка обновления базы

Сообщение NordWest »

Здравствуйте. Пытался обновиться с версии 3.0.4 до 3.0.8. На страницы обновления базы, после нажатия соответствующей кнопки, сразу вылетает ошибка и без всяких объяснений. Что это может быть?
Тут была подобная ошибка в обсуждении. Не понял, что там на самом деле вышло и как разрешилось. Но что-то на счет не определившейся версии phpBB. У меня она по идее определяется, и исходная и новая.
У меня вот база mySQL в кодировке cp1251_general_ci. Может с этим как-то связано? Да и данные базы меня как-то никто не спрашивал при обновлении.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

NordWest писал(а):У меня вот база mySQL в кодировке cp1251_general_ci. Может с этим как-то связано?
Может быть. Потому что кодировка должна быть utf8_bin.
Изображение
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Мне уже об этом говорили как то. Но конкретного совета для исправления кодировки я так и не получил.
Это относится к системным требованиям? Как то же вышло, что у меня уже довольно давно работает форум на неправильной кодировке. И как же быть? У меня на этом хостинге есть доступ к базе через консоль phpMyAdmin. Через неё можно что-то сделать? Там я нашел только функцию "сравнение", в которой можно выбрать кодировку. Или может быть надо экспортировать как-то все таблицы, в Линуксе как то их возможно перекодировать и закинуть обратно? Можете предложить план действий?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

У вас все таблицы и поля в них тоже не в юникоде? Скрин показать сможете?
Изображение
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Вот такая картина. Вообще, я попытался вспомнить, а где я вообще указывал кодировку. Видимо она стоит по умолчанию. Потому что базу я создавал пустую при установки форума. Во время самой установки не припомню, чтобы кто-то этим интересовался. Надо будет наверное хостеру позвонить. Там ребята вроде понятливые, помогли мне тут пару раз со сложными моментами. А зачем ещё служба поддержки, правда?..
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

Я вообще удивлен, как с такой схемой БД у вас что-то работает. Должно быть всё криво во все стороны.
Схема БД (в т.ч. кодировок) прописана в install/schemas/mysql_41_schema.sql (для версий >=4.1, для других в соответствующих файлах).
Изображение
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Тем не менее - работает. И проблем с кодировкой нет. У меня пакет автоматического обновления, кстати. Там не такая структура папки install видимо.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

Надо смотреть в установочном дистрибутиве.
Изображение
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Нашел я дистрибутив 3.0.4, который у меня был. Видимо с него и ставился. Там 2 файла, mysql_40_schema.sql и mysql_41_schema.sql. В 41 часто встречается

Код: Выделить всё

CHARACTER SET `utf8` COLLATE `utf8_bin`;
В 40 что-то похожее, но нигде явного указания раскладки нет. Вот что показывает панель управления.
phpbb2.jpg
Я вот думаю. Сейчас версия mySQL 4.1. Быть может в то время, когда устанавливался форум, она была старше и сработал скрипт 40. Не знаю откуда взялся cp1251. В файлах дистрибутива строчку "cp1251" нашел только в названии функции в файле recode_basic.php.

Т.е. что, придется рано или поздно перекодировать базу. Наверное надо попробовать создать ещё одну, новую. Нынешнюю экспортировать. Видимо это будет один текстовый файл или набор файлов. В линуксе должны быть функции по перекодировке файлов. Я так mp3 коллекцию перекодировал как-то. Выполняю. Импортирую в новую базу и делаю обновление.

Я такого никогда не делал, так что тут для меня множество непонятных мест. Как то нужно будет перенаправить обновленный форум на новую базу, например. Или всё вообще не так.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

NordWest писал(а):Сейчас версия mySQL 4.1. Быть может в то время, когда устанавливался форум, она была старше и сработал скрипт 40.
По идее, тогда бы стали возникать ошибки вроде этой http://www.phpbbguru.net/community/faq. ... =guru#f1r5
По идее, если использовать скрипт из фака, перекодировка должна произойти автоматически.
Только напомню, что при любых операциях с БД сначала делайте бэкап.
Изображение
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Ладно, как это получилось пока останется загадкой. Вот я экспортировал базу. При экспорте выбрал кодировку utf8. Создал новую. В ней был снова тип utf, вроде как и положено. Не знаю, что означает сопоставление правда. Выполнил импорт. Вроде всё импортировалось но все таблицы снова в прежней кодировке cp1251_... Может дело в кодировке сопоставления? Т.е. сами таблицы так и остаются в cp1251, но при работе с движком форума результаты запросов постоянно перекодируются в utf8. Кстати. Сопоставление у меня не utf8_bin, а ut8_unicode_ci. Это нормально? И как же всё таки перекодировать сами таблицы.
Звонил в тех.поддержку. Они в общем посоветовали то же самое. Экспортировать и импортировать. Но вот кодировка не изменилась.
И вот ещё что сейчас заметил. На вкладке "операции", внизу пишет, что невозможны какие-то дополнительные операции. Перешел по знаку вопроса, пишет вот что:
PMA Database ... Не готово[ Документация ]
Основные возможности связей Недоступно
Это что за зверь? Может он во всём виноват?
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Позвольте продолжить тему.
Накануне вернулся к обновлению форума. Сделал экспорт базы в файл sql. В этом файле выполнил замену всех совпадений строки cp1251 на utf8. Создал новую базу и импортировал туда этот файл. Таблицы приняли кодировку utf8_general_ci. Скопировал файлы форума в новое место и привязал в конфиге к новой базе. Всё бы ничего, заработало, но отдельные символы заменены на "?". Вот так к примеру это выглядит:
Думаю совсем боль�?ие файлы в форум луч�?е не пихать
Подскажите пожалуйста, что не так?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

NordWest
[FAQ] Проблема с UTF8
Установить параметр PHP mbstring.func_overload равным 0.
Изображение
NordWest

Re: Ошибка обновления базы

Сообщение NordWest »

Установить параметр PHP mbstring.func_overload равным 0.
Это самому можно сделать или к хостеру обращаться надо?

В обшем, прописал в базе COLLATE=utf8_bin. Базы при импорте стали с этим типом сопоставления. Видимо utf8_general_ci по умолчанию ставится, когда не указано явно. Обновление всё равно с ошибкой. Не знаю в чем дело. Неправильные символы тоже остались.
Может не пытаться обновиться через install? Если заново установить форум последней версии, с базой там, то можно потом перенести все темы, структуру, пользователей, настройки и пр.?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17273
Зарегистрирован: 20 лет 4 месяца
Откуда: Красноярск
Благодарил (а): 632 раза
Поблагодарили: 2413 раз

Re: Ошибка обновления базы

Сообщение rxu »

NordWest писал(а):Это самому можно сделать или к хостеру обращаться надо?
Сначала посмотрите в сведениях о PHP текущее значение, потом обратитесь к хостеру.
Изображение

Вернуться в «Поддержка phpBB 3.0.х»