[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: смена кодировки базы данных...
MatrixGod
всем привет!

и так, у меня есть база данных, довольно большая, под 40000 записей.
изначально данные которые в нее попадали были на UTF-8 и сайт мой тоже на UTF-8, так что все ок.

я хочу перенести сайт на windows-1251 и соответственно сменить кодировку.

короче говоря, как мне всю базу перенести в другую кодировку? есть ли готовая возможность в phpmyadmin или же придется писать свой код?

а если придется то как это сделать? код должен работать аккуратно, чтоб все осталось на своем месте, без потерь.

заранее сенкс!



Спустя 5 часов, 27 минут, 47 секунд (2.04.2010 - 09:15) vagrand написал(а):
Напиши скрипт с использованием iconv() + для нормальной работы сайта советую так же файлы кода перегнать при помощи этой функции.

P.S. Непонятно желание поменять кодировку. Обычно меняют из 1251 в UTF-8 а не наоборот

Спустя 16 часов, 15 минут, 26 секунд (3.04.2010 - 01:30) MatrixGod написал(а):
база данных занимает уйму места. хочу уменьшить хоть немного.
плюс, это трафик жрет, хоть не на много, на все же больше. его тоже надо уменьшить.

весь сайт построен на базе данных.

я понимаю что нужен iconv. но как код реализовать?

Спустя 8 часов, 23 минуты, 4 секунды (3.04.2010 - 09:53) Michael написал(а):
Не надо iconv. Надо средствами самой БД.
Смотри здесь Попробуй совет FatCatа, или то, что я тоже там подсказывал.

Спустя 3 часа, 1 минута, 18 секунд (3.04.2010 - 12:54) MatrixGod написал(а):
я толком ничего не понял.
разве нельзя перевести данные из базы в другую кодировку простым, эффективным способом?

у меня огромная база, мне надо уменьшить ее размер.
вот и все!

Спустя 58 минут, 16 секунд (3.04.2010 - 13:53) glock18 написал(а):
делай дамп и дерзай

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

update `table` set textField = convert(textField, 'cp-1251');


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

то есть.

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

Спустя 41 минута, 20 секунд (3.04.2010 - 14:34) Michael написал(а):
Цитата (MatrixGod @ 3.04.2010 - 11:54)
я толком ничего не понял.
разве нельзя перевести данные из базы в другую кодировку простым, эффективным способом?

А те ссылки, которые я указал - смотрел?
Вкратце, я делаю так:
1) в phpmyadmin делаю экспорт таблицы (флажок SQL) (возможно придется подождать) и сохраняю этот файл (в любой кодировке(*), например utf8)
2) в этом файле экспорта в команде create table меняю кодировки
3) удаляю таблицу - drop table `mnogostradalnaya`
4) в phpmyadmin делаю импорт таблицы из файла (кодировку файла(*) указываешь)
5) в php меняешь кодировку соединения - mysql_query("SET NAMES cp1251");


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.