Конвертирование базы MySQL из кирилицы в UTF8

amelanin

Moderator
LV
0
 
Конвертирование как ни странно туповатый процесс...

<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->Ибо как сказано в официальной документации:
If you want to change the table default character set and all character columns (CHAR, VARCHAR, TEXT) to a new character set, use a statement like this:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name;

For a column that has a data type of VARCHAR or one of the TEXT types, CONVERT TO CHARACTER SET will change the data type as necessary to ensure that the new column is long enough to store as many characters as the original column. For example, a TEXT column has two length bytes, which store the byte-length of values in the column, up to a maximum of 65,535. For a latin1 TEXT column, each character requires a single byte, so the column can store up to 65,535 characters. If the column is converted to utf8, each character might require up to 3 bytes, for a maximum possible length of 3 × 65,535 = 196,605 bytes. That length will not fit in a TEXT column's length bytes, so MySQL will convert the data type to MEDIUMTEXT, which is the smallest string type for which the length bytes can record a value of 196,605. Similarly, a VARCHAR column might be converted to MEDIUMTEXT.<!--QuoteEnd--></div><!--QuoteEEnd-->

:ganj2: мануалы выясняем простейшую вешь, сам phpMyAdmin спокойно конвертирует базу без сторонних утилит.


Т.е. идем в админку phpMyAdmin, делаем на всякий пожарный бацкуп базы (а лучше два один Думпером, а второй Админом).

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

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->ALTER TABLE `Тут имя таблицы` CONVERT TO CHARACTER SET 'utf8';<!--c2--></div><!--ec2-->

далее из этого заготовленного файла вставляем весь список в окно выполнения задач phpMyAdmin и жамкаем выполнить...
ждем... получаем отконвертироованные данные в таблице... идем в сравнение и ставим сравнение с UTF8 после чего радуемся жизни с базой в utf8.

сработает наверное на любой версии форума, главное не забыть изменить данные коннекта с MySQL в файле conf_global.php - строка <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->$INFO['mysql_codepage']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=&nbsp;&nbsp;&nbsp;&nbsp;'utf8';<!--c2--></div><!--ec2-->

Я делал в AkelPad методом автозамены
заменяя строку
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->&nbsp;&nbsp;`ibf_<!--c2--></div><!--ec2-->
на строку
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->ALTER TABLE `ibf<!--c2--></div><!--ec2-->
и добавляя в ручную к концу наименования каждой таблицы фразу:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->` CONVERT TO CHARACTER SET 'utf8';<!--c2--></div><!--ec2-->

зы вот моя таблица перекодирования базы если кому лениво с 2.3.6 самому файл делать...
только уберите те таблицы которых нет у вас в базе и добавьте те которые у вас есть а у меня нет.
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->ALTER TABLE `ibf_acp_help` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_admin_login_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_admin_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_admin_permission_keys` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_admin_permission_rows` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_admin_sessions` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_announcements` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_api_log` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_api_users` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_attachments` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_attachments_type` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_awards` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_badwords` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_banfilters` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_bulk_mail` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_cache_store` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_cal_calendars` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_cal_events` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_components` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_conf_settings` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_conf_settings_titles` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_contacts` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_converge_local` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_custom_bbcode` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_custom_pages` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_dnames_change` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_email_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_emoticons` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_faq` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_forum_perms` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_forum_tracker` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_forums` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_groups` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_ibwiki_categories` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_ibwiki_page_ratings` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_ibwiki_pages` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_ibwiki_revisions` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_ibwiki_subscriptions` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_infernoshout` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_infernoshoutlog` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_infernoshoutsessions` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_infernoshoutusers` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_installed_mods` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_languages` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_login_methods` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_mail_error_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_mail_queue` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_member_extra` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_members` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_members_converge` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_members_partial` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_message_text` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_message_topics` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_moderator_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_moderators` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_pfields_content` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_pfields_data` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_polls` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_posts_rough` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_profile_comments` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_profile_friends` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_profile_portal` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_profile_portal_views` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_profile_ratings` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_reg_antispam` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_rss_export` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_rss_import` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_rss_imported` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_search_results` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_sessions` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_skin_macro` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_skin_sets` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_skin_template_links` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_skin_templates` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_skin_templates_cache` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_skin_url_mapping` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_spider_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_subscription_currency` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_subscription_extra` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_subscription_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_subscription_methods` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_subscription_trans` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_subscriptions` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_task_logs` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_task_manager` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_template_diff_changes` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_template_diff_session` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_templates_diff_import` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_titles` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_topic_markers` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_topic_mmod` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_topic_ratings` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_topic_views` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_topics` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_topics_read` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_tracker` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_upgrade_history` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_validating` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_voters` CONVERT TO CHARACTER SET 'utf8';
ALTER TABLE `ibf_warn_logs` CONVERT TO CHARACTER SET 'utf8';<!--c2--></div><!--ec2-->

таблицу Post лучше конвертировать отдельно, ибо ресурсоемкая (все посты форума)
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->ALTER TABLE `ibf_posts` CONVERT TO CHARACTER SET 'utf8';<!--c2--></div><!--ec2-->

Пользуйтесь... :punk:
 
а у тя осталась старая база от 2.3.6? можешь протестировать 2 скриптика? они автоматом всё делают и не нужно так заморачиваться.
 
ыыы - плох тот админ у которого нет в запасе десятка бацкупов базы... :)

Естественно осталась... кроме бацкупов форума в запасниках (поднять на денвере дело 10ти минут) и живой форум пока в инете на 2.3.6 стоит...
 
ну ок.. тогда после выхов или в воскресенье, я тебе в личку скину скрипты эти, если всё супер будет с ними - выложу на сайт какой окажется лучшим
 
<b>«$EGUR@»</b>, выложи пожалуйста скрипты я буду сегодня тестирвать! собрался на 3.0 перейти!
 
Сверху