Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Смена кодировки дампа БД на 1251
 
 автор: pautina   (07.09.2010 в 23:09)   письмо автору
 
 

Здравствуйте Уважаемое сообщество.
Мне в файле дампа БД нужно сменить кодировку на cp-1251
(в файле 92 таблицы в конце кода дампа таблицы написано примерно TYPE=MyISAM AUTO_INCREMENT=1;)
Чтоб изменить кодировку можно прописать MyISAM DEFAULT CHARSET=cp1251
Но вот только в 92 строках это делать очень долго.
файл дампа прикрепил.
Что можно ещё сделать по изменению кодировки,

  Ответить  
 
 автор: Trianon   (08.09.2010 в 00:25)   письмо автору
 
   для: pautina   (07.09.2010 в 23:09)
 

Вам не требуется то, что Вы описали.
Эквивалентный эффект будет обеспечен путем переключения кодировки БД, в которую выполняется импорт, непосредственно перед импортом.

http://dev.mysql.com/doc/refman/5.1/en/charset-database.html:

The database character set and collation are used as default values for table definitions if the table character set and collation are not specified in CREATE TABLE statements. The database character set also is used by LOAD DATA INFILE. The character set and collation have no other purposes.

  Ответить  
 
 автор: pautina   (08.09.2010 в 08:43)   письмо автору
418.8 Кб
 
   для: Trianon   (08.09.2010 в 00:25)
 

Посмотрите файл дампа.
Имея его как мне изменить кодировку во всех таблицах. в настройках сервера на платном хостинге нет возможности изменить кодировку на cp 1251

  Ответить  
 
 автор: Trianon   (08.09.2010 в 09:56)   письмо автору
 
   для: pautina   (08.09.2010 в 08:43)
 

Вам не требуется трогать настройки сервера.
Полагаю, в Вашем случае, это к тому же просто опасно
БД это не сервер, а База Данных. Конкретная база данных.

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

  Ответить  
 
 автор: pautina   (08.09.2010 в 10:04)   письмо автору
 
   для: Trianon   (08.09.2010 в 09:56)
 

Можете описать как бы Вы решили этот вопрос.
Я делал так создавал новую БД, с кодировкой 1251, делал импорт указанного файла дампа БД с кодировкой 1251, после импорта смотрел содержимое БД, а кодировка таблиц не изменилась ,а осталась utf-8

  Ответить  
 
 автор: Trianon   (08.09.2010 в 10:15)   письмо автору
 
   для: pautina   (08.09.2010 в 10:04)
 

Операция контекстной замены есть в любом тестовом редакторе. Найти... Заменить на... Заменить везде... вуаля.
Поэтому проблема, даже в Вашем личном понимании, высосана из пальца.
Вот только вполне приличный дамп Вы этим лишь покорежите. Несильно, но покорежите.
Хотите - корежьте, дело Ваше.

>Я делал так создавал новую БД, с кодировкой 1251, делал импорт указанного файла дампа БД с кодировкой 1251, после импорта смотрел содержимое БД, а кодировка таблиц не изменилась ,а осталась utf-8

Я бы сделал именно так, как Вы описали.
Возможно, у Вас применяется какой-то кривой инструмент для импорта (делает ALTER DATABASE CHARSER cp1251 вместо SET CHARSET или SET NAMES ), либо Вы сами неточно интерпретируете полученные результаты. Либо таки не изменили в БД кодировку перед импортом (создали БД не указав кодировку явным образом).
SHOW CREATE TABLE ИмяТаблицы что показывает?

  Ответить  
 
 автор: pautina   (08.09.2010 в 10:26)   письмо автору
 
   для: Trianon   (08.09.2010 в 10:15)
 

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

  Ответить  
 
 автор: Trianon   (08.09.2010 в 10:34)   письмо автору
 
   для: pautina   (08.09.2010 в 10:26)
 

SHOW CREATE DATABASE ИмяБД
что показывает?

  Ответить  
 
 автор: pautina   (08.09.2010 в 10:40)   письмо автору
 
   для: Trianon   (08.09.2010 в 10:34)
 

Пишет вот что.
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cp1251' at line 1

  Ответить  
 
 автор: Trianon   (08.09.2010 в 10:50)   письмо автору
 
   для: pautina   (08.09.2010 в 10:40)
 

>Пишет вот что.
>#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cp1251' at line 1

я не писал в запросе никаких cp1251

  Ответить  
 
 автор: pautina   (08.09.2010 в 10:54)   письмо автору
 
   для: Trianon   (08.09.2010 в 10:50)
 

Ну да у меня имя БД такое. (bd50 cp1251)

  Ответить  
 
 автор: Trianon   (08.09.2010 в 11:09)   письмо автору
 
   для: pautina   (08.09.2010 в 10:54)
 

с пробелом внутри чтоли?
тогда имя в `обратные косые кавычки` брать следует.

хотя за пробелы в именах нужно расстреливать.
пластилиновыми пулями.

  Ответить  
 
 автор: pautina   (08.09.2010 в 12:51)   письмо автору
 
   для: Trianon   (08.09.2010 в 11:09)
 

Сделал без пробелов не помогло, что ещё можно сделать.

  Ответить  
 
 автор: Trianon   (08.09.2010 в 13:52)   письмо автору
 
   для: pautina   (08.09.2010 в 12:51)
 

Я задал четкий вопрос.
Что выдает запрос
SHOW CREATE DATABASE ИмяБазыДанных 

?
Вы отвечаете "не помогло".
Что тут еще можно сказать?

  Ответить  
 
 автор: pautina   (08.09.2010 в 13:54)   письмо автору
 
   для: Trianon   (08.09.2010 в 13:52)
 

На чёткий вопрос был дан чёткий ответ, ещё до этого
>Пишет вот что.
>#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cp1251' at line 1

  Ответить  
 
 автор: Trianon   (08.09.2010 в 14:13)   письмо автору
 
   для: pautina   (08.09.2010 в 13:54)
 

Тогда вводить следовало следующее:
SHOW CREATE DATABASE `bd50 cp1251`


если у Вас и правда имя bd50 cp1251 ...

И на такой запрос такой ответ получен быть не мог.

Сейчас я буду занят. Может кто другой поможет.

  Ответить  
 
 автор: pautina   (08.09.2010 в 18:25)   письмо автору
 
   для: Trianon   (08.09.2010 в 14:13)
 

Благодарю всех кто откликнулся.
Проблема решалась на сервере хостера, обновление сервера mysql до 5 версии решило все вопросы.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования