Но как быть если предположим есть два сервера и на одном из них mysql в cp1251 а на другом - в стандартной кодировке?
Для решения этой проблемы предлагаем два очень простых скрипта - первый создает дампы всех баз, за исключением системных, а второй - заменяет существующие базы с неправильной кодировкой на правильную. Скрипт предназначен прежде всего для WHM/cPanel но в принципе пойдет на любых серверах.
Сначала создадим архив с дампами баз mysql с помощью первого скрипта:
for i in `mysqlshow | grep -v + | grep -v '| Databases |' | cut -d ' ' -f2 | grep -v horde| grep -v mysql | grep -v eximstats`; do mysqldump -f --compatible=mysql40 $i > $i.sql; done; tar czf dump1251.tgz *.sql; rm *.sql
В результате будет создан файл dump1251.tgz - архив со всеми дампами sql в нормальной кодировке. Его необходимо перенести на другой сервер и восстановить с помощью второго скрипта:
for i in `ls *.sql`;do b=`basename $i .sql`;yes | mysqladmin drop $b; mysqladmin create $b; mysql --default-character-set=cp1251 $b
После этого вместо вопросительных знаков появятся русские буквы. Приятной работы :)
Комментариев нет:
Отправить комментарий