MySQL и работа на русском
Нередко возникает проблема, когда есть два сервера, на которых стоит 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
После восстановления архива вопросительные знаки будут заменены русскими буквами.