пятница, 21 октября 2022 г.

MariaDB10 особенности работы mysqldump со старыми серверами MySQL5

На новом сервере установил MariaDB 10.9.1

Обнаружил, что команды mysqldump с удаленным сервером 10.10.50.252 с MySQL 5.1 работают не так как ожидалось.
Например, команда которая должна выгружать данные (без структуры) с удаленного сервера реально не работает:
# mysqldump -h10.10.50.252 -uuserdb -ppasswd --no-create-info dbname > dbname_data.sql
Оказалось, что при выполнении mysqldump на новом сервере и обращении к старому серверу нужно специально указывать опцию использования другого формата.
Это опция: --compatible=ansi
Таким образом команда должна быть такая:
# mysqldump -h10.10.50.252 -uuserdb -ppasswd --no-create-info --compatible=ansi dbname > dbname_data.sql
После анализа выгружаемой информации обнаружилось, что русские буквы не читаются в выгрузке.
Вместо русских букв - знаки вопроса, например: '????? ? ??????????? text 10.10.2017, ????'
Для решения проблем с кодировкой необходимо в команде задать используемую кодировку. Это опция: --default-character-set=utf8
Команда получается такая:
# mysqldump -h10.10.50.252 -uuserdb -ppasswd --no-create-info --compatible=ansi --default-character-set=utf8 dbname > dbname_data.sql
После выполнения команды в текущем каталоге будет корректный файл dbname_data.sql

Загрузка данных в новую базу данных на новый сервер из файла dbname_data.sql:
# mysql -uuserdb -ppasswd dbname < dbname_data.sql

Комментариев нет:

Отправить комментарий