mysqldump — это утилита из состава пакета MySQL предназначенная для создания резервных копий баз данных и таблиц. В отличие от phpMyAdmin, которая хоть и предлагает веб-интерфейс, но является более медленным инструментом, связанными с ограничением промежуточных звеньев, таких как PHP и Apache, mysqldump намного более эффективным инструментом лишённым ограничений для создания резервных копий очень объёмных данных.
Смотрите также: Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin
Но в Windows в работе mysqldump имеются нюансы. Из-за особенностей PowerShell по работе с кодировками, в экспортируемых базах данных может быть испорчены все нелатинские символы. Эта проблема не наблюдается в CMD, но в последних версиях Windows по умолчанию используется PowerShell, поэтому рассматриваемая проблема затрагивает всех пользователей, которые запускают mysqldump для создания резервных копий баз данных в Windows.
Следующая команда, выполненная в PowerShell 7:
.\mysqldump.exe -u root --all-databases > all-databases_ps7.sql
Создаст файл all-databases_ps7.sql в кодировке UTF-8 в который с помощью mysqldump будут экспортированы все базы данных MySQL (с целью создания резервной копии). Но в этих базах будут безвозвратно испорчены все нелатинские символы!
То есть вместо кириллицы будет примерно следующее:
'╨Р╤А╨▒╨╕╤В╤А╨░╨╢╨╜╤Л╨╣ ╨┐╤А╨╛╤Ж╨╡╤Б╤Б: ╤Г╤З╨╡╨▒╨╜╨╕╨║ / ╨Ъ.╨Ь. ╨Р╤А╤Б╨╗╨░╨╜╨╛╨▓, ╨Ф.╨е. ╨Т╨░╨╗╨╡╨╡╨▓, ╨а.╨Э. ╨У╨╕╨╝╨░╨╖╨
Чтобы избежать этой проблемы, используйте mysqldump с опцией --result-file. Следующая команда сохранит базу данных в правильной кодировке:
.\mysqldump.exe -u root --all-databases --result-file=all-databases.sql
Вы также можете использовать следующую конструкцию из двух команд для исправления проблемы с кодировкой:
[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("UTF-8") .\mysqldump.exe -u root --all-databases > all-databases.sql
Связанные статьи:
- Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin (100%)
- MariaDB для Windows (56.1%)
- Как обновить MySQL (56.1%)
- Как обновить MariaDB в Windows (56.1%)
- Как сбросить пароль root MySQL или MariaDB в Windows (56.1%)
- Apache для Windows (RANDOM - 50%)