Як встановити кодування передпочатком роботи mysqldump, PHPClub - клуб розробників PHP

Як встановити кодування перед початком роботи mysqldump

Існує віртуальний хостинг на sweb.ru. На ньому є БД utf8, яку треба здампити в utf8-файл. Якщо дампити її через mysqldump, то дампиться в CP1251, тому що налаштовано там все наступним чином (змінні запитували перебуваючи в БД, яку треба здампити):

База даних та її таблиці зберігаються в utf8. Т. е. якщо зробити SET NAMES 'utf8' то все чудово відображається.

Чи можливо якось перед початком роботи mysqldump виконати SET NAMES 'utf8' або, що аналогічно, встановити змінні: SET character_set_client = utf8; SET character_set_results = utf8; SET character_set_connection = utf8; .

Якщо прописати --default-character-set=utf8 для mysqldump, також не допомагає. Якщо прописати в

– аналогічно, не допомагає.

P. S. Дампіти в 1251, а потім конвертувати через iconv в utf8 не можу, тому що деякі таблиці зберігають бінарні дані і iconv просто не хоче конвертувати такий дамп.

У техпідтримці відповіли таке:

Про sypex-дампер давно знаю, він впорається з цим завданням. Але його завжди вважав останнім рішенням, яке використовуватиму. Мені взагалі в результаті треба отримати систему перекачування резервних копій сайту на мій комп, тому адаптувати sypex до цього завдання не дуже хочеться.

Взагалі, якщо возитися з mysqldump, можна просто в вихідні дані забити виконання запиту SET NAMES 'utf8' перед початком роботи, але це може обійтися за часом дорожче, ніж використовувати sypex.

А крім mysqldump є якісь нитки альтернативи? Або може хтось уже переробляв mysqldump під таке завдання – де це можна подивитися?