Forum Webscript.Ru
Общие => Базы данных => Тема начата: evgkuz от 27 Июля 2006, 22:52:58
-
Когда я перевозил сайт с хостинга на хостинг, то выяснилось что я сделал дамп не в той кодировке. Т.е. вместо русского текста я получил искажённый текст.
Т.е. я сделал дамп в кодировке "UTF 8".
Я конвертировал текст в нужную кодировку (windows1251), но при этом видимо информация частично исказилась.
Вот результат:
http://olsenfanclub.ru/forum/index.php
Повторно сделать дамп я уже не могу, т.к. предыдущий хостёр уже удалил мой аккаунт вместе с сайтов и БД.
Обратите внимание на "<{C_OFF}>", т.е. вместо стандартных картинок форума "Invision Power Board", выводятся плайсхолдеры.
Кто-нибудь может мне сказать в какой таблице БД MySQL можно исправить этот глюк?
-
evgkuz
точно, тебе наверное никто не скажет. Я вот например про твой Повер боард слышу в первые. Тебе наверное легче будет искать нужную информацию в поисковиках.
Такой вариант устраивает ?
а оригинал дампа в UTF-8 хоть сохранил себя ? Если да то что тебе мешает пользоватся им не ковертируя ее в другую кодировку ?
-
to: for_i_0
Дамп в формате "UTF-8" у меня сохранился.
Если его закачивать, то всё работает, но вместо русского текста козяблики.
Возможно козяблики появляются из-за того что я удаляю этот текст в конце каждой таблицы:
"ENGINE=MyISAM DEFAULT CHARSET=cp1251"
Но на новом хостинге стоит "MySQL версия 3", а эта версия БД не понимает эту надпись (выдаёт ошибки).
-
Можно ли как-нибудь закачать дамп от "MySQL v. 4" в БД "MySQL v. 3"?
-
Можно ли как-нибудь закачать дамп от "MySQL v. 4" в БД "MySQL v. 3"?
Проблема в том, что при попытке закачать дамп от "MySQL v. 4" в БД "MySQL v. 3" возникают синтаксические ошибки по поводу следующего кода:
"ENGINE=MyISAM DEFAULT CHARSET=cp1251"
Если удалить эту строку, то вместо русского текста появляется непонятный код.
-
Путей у тебя несколько, смотря где ты снимаешь дамп БД.
1) В файле с дампом просто выполнить глобальную замену, а именно заменить ENGINE=MyISAM на TYPE=MyISAM, практическиу уверен что это решит твою проблему.
2) Если ты снимаешь дамп из PhpMyAdmin, то в закладке Export есть строка SQL export compatibility:, там выпадающая менюха, выбери MySQL 323 тоже должно помочь.
3) Ну или если ты снимаешь при помощи mysqldump, то просто указываешь опцию --compatible=mysql323, тоже должно помочь.
-
mysql 3 по-моему и CHARSET не поддерживал.
-
Я решил, что проще будет обновить MySQL с версии 3 до "4.1.19-win32" на своём локальном сервере.
Но возникла мальнькая проблема:
Я не нашёл библиотеку "php_mysql.dll" ни в "PHP4.3.10", ни в "mysql-4.1.19-win32".
Есть только "libmysql.dll".
До этого "MySQL 3.23" работал без файла "php_mysql.dll".
Где можно найти файл "php_mysql.dll" для "PHP4.3.10" + "mysql-4.1.19-win32"?
-
>До этого "MySQL 3.23" работал без файла "php_mysql.dll".
А 4-й работать отказывается?
-
"mysql-4.1.19-win32" через shell - работает, вместе с php - нет.
Может мне кто-нибудь пришлёт файл "php_mysql.dll" для "PHP4.3.10" на Email evgkuz@mail.ru ?
-
Я конвертировал текст в нужную кодировку (windows1251), но при этом видимо информация частично исказилась.
А как ты это делал?
Может не нужно MySQL обновлять а сделать проще?
Тут такое предложение. А если конвертировать в нужную кодировку файл дампа на локальной машине? Написать php-скрипт и используя функцию iconv() перекодировать так как нужно.
Скрипт будет весить строчек 10.
Потребуется правда подключть расширение php_iconv.dll. На локальном сервере это проблем не составит. Если сервер начнет ругаться, что не может подключить это расширение, то это от того что не может найти некоторые dll-ки. Перепишешь iconv.dll в system32 и все заработает. Локально под XP у меня все именно так и работает.
-
Спасибо, я забыл использовать "OLD_PASSWORD". Всё работает.
Вот что нужно сделать чтобы работали PHP4 + MySQL4:
mysql -h localhost -u root -p
USE mysql;
UPDATE user SET password=OLD_PASSWORD(\'test\') WHERE user=\'root\';
FLUSH PRIVILEGES;