The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"mysql: howto latin1.table.host1 move to utf8.table.host2"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"mysql: howto latin1.table.host1 move to utf8.table.host2"  
Сообщение от eightn email(??) on 03-Сен-06, 01:05 
Каким образом можно перенести базу данный mysql, хранящуюся в кодировка latin1 на другой хост, попутно сконвертив базу в utf8?

На первом хосте (freebsd):
mysql> show variables like "char%";
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | latin1                           |
| character_set_connection | latin1                           |
| character_set_database   | latin1                           |
| character_set_results    | latin1                           |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
7 rows in set (0.01 sec)


на втором хосте (linux):

mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)


mysqldump на host1 и потом mysql <dump.sql не приводит ни к чему хорошему - русский текст в таблице корежится до неузнаваемости.

Пробовал предварительно сделать
alter table $table CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin
для всех таблиц базы на первом хосте

потом dump и restore на втором - все тоже самое, русские имена корежатся до крякозябр :(

Поиск в гугле внятностей не принес, в доке на mysql ничего подобного не разбирается (в рамках переноса на другой хост).

Кто нибудь занимался? Как решить проблему?


Опытным путем выяснилось, что, если в первом или втором описываемых вариантах, перед select() на новом хосте дать команду
set  character_set_results="latin1";
то русский язык появляется...

А как бы сделать, чтобы latin1 вообще не упоминался?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "mysql: howto latin1.table.host1 move to utf8.table.host2"  
Сообщение от FreeBSDuser1803 on 03-Сен-06, 16:28 
Берем дамп базы, открываем его в какомнибудь редакторе (я в WordPad), Правка > заменить
И меняем строчки типа Default Charset = xxx на ....ничего :) . И сохраняем в формате utf8 . Усё.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру