Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Сломалась кодировка русских букв при переносе базы данных

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Тюшин Вадим
phpBB 1.4.0
Сообщения: 37
Стаж: 15 лет
Откуда: Москва
Благодарил (а): 7 раз

Сломалась кодировка русских букв при переносе базы данных

Сообщение Тюшин Вадим »

Всем здравствуйте. Не уверен, что писать надо сюда так как проблема не непосредственно в форуме 3.3.0, а в переносе базы данных. Поправьте если не прав.

Перехожу с 3.2.9 на 3.3.0. Поскольку идет смена версии PHP, тестируюсь в песочнице.
Основной форум: www.firstep.ru/forum
Тестовая песочница: www.test.firstep.ru/forum

Основной форум работает без замечаний под PHP v5.6.40 Сервер базы данных MySQL 5.6.41-84.1
В тестовой песочнице установлен PHP v7.2

Задача: полностью перенести основной форум в песочницу и там обновиться с 3.2.9 на 3.3.0.

Средствами форума сделал сохранение основной базы в sql-файл. Из выгруженного файла залил базу тестового форума.
Ниже команда загрузки тестовой базы:

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

mysql -u firstep_teste_db -pPASSWORD --default-character-set=UTF8 firstep_teste_db < backup.sql
Скопировал все скрипты основного форума кроме кэша в песочницу. Затем начал обновляться.

При установке увидел, что кодировка русских букв, считанных из форумной базы сломалась. При этом русские тексты движка форума отображаются нормально. Через phpMyAdmin посмотрел содержимое основной и тестовой баз. Основная база - русские буквы нормально. Тестовая база - кодировка сломалась. Проверил файл с sql-выкачкой "backup.sql" - там русские буквы нормально (кодировка utf8).

Сам форум переустановился на 3.3.0 на первый взгляд нормально. Проблема в сломавшейся кодировке русских букв при переносе базы данных. Может быть в команде mysql я чего-то не так написал?
Аватара пользователя
southklad
phpBB 3.1.0 RC2
Сообщения: 3232
Стаж: 12 лет 3 месяца
Благодарил (а): 704 раза
Поблагодарили: 152 раза

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение southklad »

Скорее всего именно кодировка в новой базе не верная, отсюда и проблемы
Изображение
Аватара пользователя
Тюшин Вадим
phpBB 1.4.0
Сообщения: 37
Стаж: 15 лет
Откуда: Москва
Благодарил (а): 7 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Тюшин Вадим »

Скорее всего именно кодировка в новой базе не верная, отсюда и проблемы
Да. phpMyAdmin при показе содержимого таблиц тестовой базы вместо русских букв дает бяку.
В том-то и вопрос: как залить тестовую базу, чтобы кодировка не сломалась?
Аватара пользователя
ronim
Модератор
Модератор
Сообщения: 913
Стаж: 6 лет 3 месяца
Откуда: Таллин ,Эстония
Благодарил (а): 167 раз
Поблагодарили: 160 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение ronim »

Тюшин Вадим, Я не понимаю почему вы хотите скопировать базу данных через phpMyAdmin?
Если ты не видишь проблем на форуме , но это не значить что их там нет
Аватара пользователя
Тюшин Вадим
phpBB 1.4.0
Сообщения: 37
Стаж: 15 лет
Откуда: Москва
Благодарил (а): 7 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Тюшин Вадим »

Нет. Через phpMyAdmin я ее только смотрю. Выкачку боевой базы делал стандартными средствами форума через админку. Закачку тестовой базы командой:
mysql -u firstep_teste_db -pPASSWORD --default-character-set=UTF8 firstep_teste_db < backup.sql

После закачки начал смотреть тестовую базу через phpMyAdmin и не увидел русских букв.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5280
Стаж: 19 лет 3 месяца
Откуда: Питер
Благодарил (а): 186 раз
Поблагодарили: 791 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Siava »

Тюшин Вадим, попробуйте импортировать без --default-character-set=UTF8.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
Аватара пользователя
ronim
Модератор
Модератор
Сообщения: 913
Стаж: 6 лет 3 месяца
Откуда: Таллин ,Эстония
Благодарил (а): 167 раз
Поблагодарили: 160 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение ronim »

Тюшин Вадим, зачем вы все так усложняете , ведь у вас тестовый форум является поддоменом ,значить и phpMyAdmin у них общий
Мне кажется то в такой конфигурации проще сделать как на картинке
предварительно удалив данные с базы данных поддомена
зрз.JPG
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если ты не видишь проблем на форуме , но это не значить что их там нет
Аватара пользователя
Тюшин Вадим
phpBB 1.4.0
Сообщения: 37
Стаж: 15 лет
Откуда: Москва
Благодарил (а): 7 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Тюшин Вадим »

попробуйте импортировать без --default-character-set=UTF8
Не помогло :-(

Пробую скопироваться через phpMyAdmin. Создал еще тестовую базу firstep_copy_db. Пробую в нее.
Не прошло. Получил диагностику:
Ошибка
CREATE DATABASE IF NOT EXISTS `forum_copy_db` DEFAULT CHARSET=cp1251 COLLATE cp1251_general_ci;
Ответ MySQL: Документация
#1044 - Для пользователя 'firstep'@'%' доступ к базе данных 'forum_copy_db' закрыт
Не понимаю почему phpMyAdmin меня видит и все базы показывает, а на уровне sql-запроса ругается.
Заметил странность: DEFAULT CHARSET=cp1251 Вроде должно быть UTF8. Но при создании базы меня кодировку не спрашивали.

Отправлено спустя 15 минут 43 секунды:
Кажется получилось. Доделаю отпишусь.

Отправлено спустя 26 минут 2 секунды:
Сработало в два шага через phpMyAdmin. Сначала экспорт боевой базы в sql-файл, который прилетел ко мне на локальную машину. Затем импорт этого файла во вторую тестовую базу.

Полагаю, проблема была в следующем:
Я выкачивал данные из базы одной программой (админка форума), а закачивал другой - утилита "mysql". Что-нибудь в опциях напутал. Что именно пока не знаю - буду неторопливо разбираться.

Решение проблемы:
Сейчас и выкачивал, и закачивал одной программой. Соответственно вероятность ошибиться в настройках меньше.

Тема для исследований:
Если когда-нибудь понадобится куда-нибудь переезжать, надо заранее проработать вариант полного переезда форума. Скрипты скопировать не вопрос. Переливка базы (через текстовый файл) пока остается вопросом.

Всем большое спасибо.
Аватара пользователя
Perfecthus
phpBB 2.0.11
Сообщения: 803
Стаж: 13 лет 5 месяцев
Откуда: Оттуда
Благодарил (а): 51 раз
Поблагодарили: 86 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Perfecthus »

Посмотри php.ini какие там кодировки стоят.
Аватара пользователя
Тюшин Вадим
phpBB 1.4.0
Сообщения: 37
Стаж: 15 лет
Откуда: Москва
Благодарил (а): 7 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Тюшин Вадим »

Посмотри php.ini
Мне он недоступен. :-(

Пришла подсказка от хостера. В подсказке им подготовленный файл с выкачкой базы и команда mysql для загрузки выкачки в базу. Загрузка прошла без проблем. Предположение переходит в уверенность, что ЗАгружать и ВЫгружать базу следует каким-либо одним средством. Попросил хостера показать команду для mysql на ВЫгрузку базы. Как отпишутся скопирую их сюда парой.
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 12422
Стаж: 12 лет 8 месяцев
Благодарил (а): 166 раз
Поблагодарили: 2474 раза

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Татьяна5 »

Тюшин Вадим писал(а): 05.02.2020 1:09 Полагаю, проблема была в следующем:
Я выкачивал данные из базы одной программой (админка форума), а закачивал другой - утилита "mysql"
Именно
Бекап, созданный через админку, очень желательно восстанавливать тоже через админку
И вообще создание бекапа через админку - худший вариант. Капризный слишком
Аватара пользователя
Тюшин Вадим
phpBB 1.4.0
Сообщения: 37
Стаж: 15 лет
Откуда: Москва
Благодарил (а): 7 раз

Re: Сломалась кодировка русских букв при переносе базы данных

Сообщение Тюшин Вадим »

Бекап, созданный через админку, очень желательно восстанавливать тоже через админку
Грустно. Это значит, доверие к встроенному копированию падает. Если "вдруг" (все бяки обычно происходят именно "вдруг") форумная база фатально сломалась, восстановиться станет затруднительно. Чтобы добраться до сохраненной копии, надо войти в админку. А войти может не получиться так как боевая база сломана. :-(

Получил от хостеров команды на ВЫкачку и ЗАкачку базы средствами mysql. Проверил. Работает.
mysqldump -q --default-character-set=binary --skip-extended-insert –u USER_MYSQL -pPASSWORD DB_NAME > DB_FILE.sql
mysql -h dbhost -u dbuser -pdbpassword dbname < DB_FILE.sql

На версию 3.3.0 перешел.

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