|
|
|
| Делаю экспорт, но на другом хостинге постоянно ошибки при импорте (((
Видать разные версии или еще что-то... Как с этим бороться? | |
|
|
|
|
|
|
|
для: Лена Смирнова
(10.04.2009 в 13:19)
| | анализировать ошибки и определить причины их возникновения.
причин может быть масса:
сильное отличие версий ( до и после 4.1)
отсутствие указания кодировки дампа при импоре ( или отсутствие оператора SET NAMES в самом дампе)
некорректная кодировка текста в дампе
некорректная кодировка полей таблиц в дампе
некорректная кодировка БД, в которую выполняется импорт.
ограничения клиента импорта на размер дампа
ограничения сервера импорта на размер SQL-операторов | |
|
|
|
|
|
|
|
для: Trianon
(10.04.2009 в 23:25)
| | Есть таблица, в операциях в phpmyadmin в сравнении стоит cp1251. В самой таблице хранится в utf8.
Делаю экспорт, прописываю /*!40101 SET NAMES cp1251 */;
Далее импортирую на другой сервер, при вывод на сайте появляется ???????? вместо слов | |
|
|
|
|
|
|
|
для: Лена Смирнова
(14.04.2009 в 23:18)
| | >Есть таблица, в операциях в phpmyadmin в сравнении стоит cp1251. В самой таблице хранится в utf8.
>Делаю экспорт,...
После этого, очевидно, нужно исправлять дамп?
Или Вы полагаете, что когда сами данные в utf8, а кодировка бд, таблиц, полей указана как cp1251 - это нормально?
Можно попробовать снять дамп в режиме совместимости с MySQL 4.0 .
При этом, насколько я помню, все указания о кодировках из дампа убираются ( т.к. версия 4.0 и ниже с кодировками не работает)
А после этого уже прописать SET NAMES . И даже не SET NAMES а SET CHARACTER SET .
И не cp1251 , а ту кодировку, в которой окажется текст в дампе.
И кодировку БД импорта установить правильно. Перед импортом. | |
|
|
|
|
|
|
|
для: Trianon
(15.04.2009 в 00:09)
| | Попробовала не помогает ((( | |
|
|
|
|
|
|
|
для: Лена Смирнова
(15.04.2009 в 00:32)
| | Как вариант вам могу предложить такой способ он правда добавляет 1 запрос к БД но имхо работает в таких случаях.
1). Залить дамп в вашу новую БД
2). Найти в вашем скрипте строку которая открывает соединение с БД mysql_connect
3). Ниже по коду смотрите условие успешного подключения.
4). Вставляйте один из этих кодов:
mysql_query ('SET NAMES CP1251');
mysql_query ('SET CHARACTER SET CP1251');
Где CP1251 кирилица windows
Пробуйте разные кодировки к примеру если предпологаеш что там UTF-8,
заменяеш CP1251 на UTF-8
|
Такая фишка реально помогает :-) | |
|
|
|
|
|
|
|
для: Uzer44
(15.04.2009 в 03:35)
| | Вы вариант работает, но у меня огромное кол-во файлов и запросов в них... не могу я физически перед каждым запросом вставлять mysql_query ('SET NAMES CP1251');
mysql_query ('SET CHARACTER SET CP1251');
Может есть еще способы? | |
|
|
|
|
|
|
|
для: Лена Смирнова
(15.04.2009 в 21:22)
| | вообще-то вызов этого оператора ставится один раз, в файл, который устанавливает соединение с сервером ( mysql_connect() ) и выбирает бд (mysql_select_db()) . | |
|
|
|
|
|
|
|
для: Trianon
(15.04.2009 в 21:28)
| | Да, верно... работает, но тогда при новом сохранении в БД опять ???????? вместо текста ((( Может просто всетаки, есть способ ипортировать нормально? | |
|
|
|
|
|
|
|
для: Лена Смирнова
(15.04.2009 в 21:52)
| | Вероятно, потому, что кодировка БД и таблиц не совпадает с кодировкой содержимого в них.
А текст в дампе читается? Русский, я имею в виду. | |
|
|
|
|
|
|
|
для: Trianon
(15.04.2009 в 22:24)
| | Я уже пробовала менять читается. | |
|
|
|
|
|
|
|
для: Лена Смирнова
(15.04.2009 в 23:26)
| | что показывает запрос
$res = mysql_query("SHOW VARIABLES LIKE '%char%'");
while($row = mysql_fetch_row($res))
echo $row[0] . ' = ' . $row[1] ."<br />\r\n";
|
в контексте Вашего конфига? | |
|
|
|
|
|
|
|
для: Trianon
(16.04.2009 в 00:15)
| | character_set_client = latin1
character_set_connection = latin1
character_set_database = cp1251
character_set_filesystem = binary
character_set_results = latin1
character_set_server = latin1
character_set_system = utf8
character_sets_dir = /usr/share/mysql/charsets/ | |
|
|
|
|
|
|
|
для: Лена Смирнова
(16.04.2009 в 00:32)
| | Отсюда ясно следует, что оператор mysql_query("SET CHARACTER SET 'КодировкаСкрипта'");
в рамках конфига не выполнялся. Почему?
Как выглядит структура какой-нибудь типичной таблицы (SHOW CREATE TABLE ИмяТаблицы) ? | |
|
|
|
|
|
|
|
для: Лена Смирнова
(15.04.2009 в 00:32)
| | дамп большой? | |
|
|
|
|
|
|
|
для: Trianon
(15.04.2009 в 10:12)
| | 6 метров в zip | |
|
|
|