Скрипт для смены кодировки всех полей во всех таблицах базы

L
На сайте с 23.09.2012
Offline
13
1082

Подскажите, как быстро сменить кодировку всех полей всех таблиц в базе?

Например этот скрипт ставит кодировку таблиц mydb.

echo "ALTER DATABASE mydb DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;" | mysql; for i in `mysqlshow mydb % | grep -v + | cut -d ' ' -f2;`; do echo "ALTER TABLE mydb.$i DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;" | mysql ; done

Нужно тоже самое, но для полей во всех таблицах...

Andreyka
На сайте с 19.02.2005
Offline
822
#1

Надо добавить for для mysqlshow

Не стоит плодить сущности без необходимости
A
На сайте с 19.07.2010
Offline
130
#2

1. сделать бекап без сжатия, т.е. в .sql

2. поиск-замена по всему файлу

3. если нужно и если нет бинарных полей, то iconv для перекодирования текстовых полей

4. поднимаем бекап на ТЕСТОВОМ сервере

5. если все ок, то поднимаем его на продакте

небольшой хинт: можно просто указать кодировку таблицы и не заморачиваться с указанием кодировки для каждого поля

.............
Andreyka
На сайте с 19.02.2005
Offline
822
#3
admak:
1. сделать бекап без сжатия, т.е. в .sql

Удаляем гланды через анус?

K5
На сайте с 21.07.2010
Offline
209
#4
Andreyka:
Удаляем гланды через анус?

так приятнее всегда и всем :)

аська 45два48499два записки на работе (http://memoryhigh.ru) помогу с сайтом, удалю вирусы, настрою впс -> отзывы ТУТ (/ru/forum/836248) и ТАМ (http://www.maultalk.com/topic140187.html) !!!всегда проверяйте данные людей, которые сами пишут вам в аську или скайп!!!
A
На сайте с 19.07.2010
Offline
130
#5
kgtu5:
так приятнее всегда и всем :)

это точно :) для разовых операций - анус самое то 😂

но некоторым нравиться играться с каждой из сотни табличек по отдельности, да еще и прямо на продакте. а потом, упс, или табличку пропустили или в умном sql-е что-то накосячили... а бекап перед играми сделать забыли.

вот и приходиться брать последний ночной анус бекап и делать подобные вещи тупо, но надежно.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий