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

на денвере выдает следующее:

ipb2_utf8_convert_v1.0.php

<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->Warning: require_once(./init.php) [function.require-once]: failed to open stream: No such file or directory in z:\home\test1.ru\www\backups\ipb2_utf8_convert_v1.0.php on line 18

Fatal error: require_once() [function.require]: Failed opening required './init.php' (include_path='.;/usr/local/php5/PEAR') in z:\home\test1.ru\www\backups\ipb2_utf8_convert_v1.0.php on line 18<!--c2--></div><!--ec2-->
и дальше чистый лист....

c22.php
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->Notice: Undefined index: do in z:\home\test.ru\www\backups\c22.php on line 12

Notice: Undefined index: do in z:\home\test.ru\www\backups\c22.php on line 78

Warning: Cannot modify header information - headers already sent by (output started at z:\home\test.ru\www\backups\c22.php:12) in z:\home\test.ru\www\backups\c22.php on line 102

Warning: Cannot modify header information - headers already sent by (output started at z:\home\test.ru\www\backups\c22.php:12) in z:\home\test.ru\www\backups\c22.php on line 103

Warning: Cannot modify header information - headers already sent by (output started at z:\home\test.ru\www\backups\c22.php:12) in z:\home\test.ru\www\backups\c22.php on line 104

Warning: Cannot modify header information - headers already sent by (output started at z:\home\test.ru\www\backups\c22.php:12) in z:\home\test.ru\www\backups\c22.php on line 105<!--c2--></div><!--ec2-->
и дальше форма конвертера...


идем дальше... перемещаю в корень доменов. И получаю те-же строки.... только адрес другой...

в процессе работы c22.php выдает строку Notice: Undefined index: complete in z:\home\test.ru\www\c22.php on line 39
но вроде бы конвертирует... потаблично... и очень долго по сравнению с конвертацией в phpMyAdmin... хотя памяти требует от процесса намного меньше... так phpMyAdmin мне загрузил 200Mb памяти и 100% проца.... а c22 100Mb и 15-20% процессора...
выглядит вот так в процессе:
<a href="http://radikal.ru/F/s54.radikal.ru/i146/0907/9b/6875938d4d3f.jpg.html" target="_blank"><img src="http://s54.radikal.ru/i146/0907/9b/6875938d4d3ft.jpg" border="0" class="linked-image" /></a>


в ipb2_utf8_convert_v1.0.php обязательно класть в корень форума...
ибо строка 18 не может найти init.php если скрипт лежит в папке...
при помещениии в корневую папку выдает уже другую ошибку:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->Warning: mysql_connect() [function.mysql-connect]: Access denied for user '-------'@'localhost' (using password: YES) in z:\home\test1.ru\www\ipb2_utf8_convert_v1.0.php on line 89
Cannot connect to server.<!--c2--></div><!--ec2-->
следовательно нуждается в правке собственного конфига перед запуском.
строки 35, 36, 37.
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->$username = "-------";
$password = "-------";
$dbname = "-------";<!--c2--></div><!--ec2-->

однако при вбивке пассов и коннекте выдает:
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->Table ibf_acp_help: fields to be converted: 4 primary keys: 1 ibf_acp_help.page_key is assumed to contain cp1251_general_ci characters Error, can NOT read file: z:/home/test1.ru/www/ips_kernel/i18n/convertcharset/ConvertTables/cp1251_general_ci<!--c2--></div><!--ec2-->

короче если и юзать то c22.php - но он ну ооооооооооооочень долго конвертирует.... приготовьтесь включив скрипт отправиться в кино на вечерний сеанс... :)

Оба скрипта работают только из корня форума.
Основное отличие -

с22 - юзерфрендли... при старте показывает окошко логин пасс базы и во что конвертить...

ipb2_utf8_convert_v1.0 - юзерНОфрендли... при старте ничего кроме ошибок не покажет.. надо искать и править лапками... если встретит нестанадртную таблицу в базе просто заткнется с ошибкой...

зы вот уже полчаса с22 конвертит базу... базу всего-то 30 мегабайт.... кошмарно долго по сравнению с конвертом в phpMyAdmin там конверт занимает пару минут на той-же базе.

Вывод если применять то c22. Но он нужен только если либо нет доступа к phpMyAdmin, либо жестко ограничены системные ресурсы на процессы MySQL. ибо лучше медленный скрипт перебирающий таблицы поштучно, нежели вбивать их в админке PHP руками...

c22 хоть медленно но отконвертировал базу в UTF8 - ошибок в базе нет.
ipb2_utf8_convert_v1.0 - так и не добрался до реальной конвертации зависнув на ошибке... и при этом создав лишнюю таблицу temp в базе.

ps после конвертации база продолжает читаться форумом 2.3.6 как cp1251 - попытки поставить её в UTF-8 вместе с кодировкой ведут лбо к кракозябрам либо к знакам вопроса...
 
у меня не было на сервере ошибок по этим скриптам

и? не катят эти скрипты?
 
с22 катит - он реально переконвертирует базу, хотя и медленно... другое дело что 2.3.6 версия юникод не поддерживает... и конвертировать базу нужно только если 100% решил перейти на IPB3

после апгрейда 2.3.6 (лицензия) до 3.0.0 (лицензия) -
поставить в Settings: Server Environment - пункт Document Character Set - windows-1251 вместо iso-8859-1
(прим - рекомендуется конечно UTF-8 но оно вызывает знаки вопросов в темах форума. Поэтому ставим windows-1251 и не парим себе мозги)

поставить в conf_global.php
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->$INFO['mysql_codepage']='utf8';<!--c2--></div><!--ec2-->
вместо
<!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->$INFO['mysql_codepage']='cp1251';<!--c2--></div><!--ec2-->

зы апгрейд проводится по адресу <a href="http://ваш" target="_blank">http://ваш</a> адрес форума/admin/upgrade - логин и пароль вбиваются ваши админские на форуме.
 
<!--quoteo--><div class='quotetop'>Цитата</div><div class='quotemain'><!--quotec-->с22 катит - он реально переконвертирует базу, хотя и медленно... другое дело что 2.3.6 версия юникод не поддерживает... и конвертировать базу нужно только если 100% решил перейти на IPB3<!--QuoteEnd--></div><!--QuoteEEnd-->
ну так именно для этого и служит этот скрипт
 
Сверху