LINUX.ORG.RU
ФорумAdmin

Execute SQL c 3 муськи на 5 версию - проблема с UTF


0

0

Имею базу 3.23 , при помощи MySQL Administrator dump 1.4 сохранил базу в sql.

Вот заголовок SQL

-- MySQL Administrator dump 1.4 -- -- ------------------------------------------------------ -- Server version 3.23.49

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

База которая сохранялась - в UTF8 , причем само содержимое SQL выглядет ок - записи данных в UTF8 видны как UTF8 - эксплорер успешно показывает при кодировке UTF8 .

Дальше при помощи тогоже MySQL Administrator восттанавливаю базу в 5 муське. Указав разумеется UTF8, предварительно создав базу в которой по дефолту UTF8 ... итого имею все нестандартные знаки (не латиница) выглядят ????????? . Пробывал вручную через mysql выполнять восстановление sql . Тоже самое ! Самое интересное что потом через вебсайт на который работает с этой базой - можно успещно исправить ???? на правильные UTF8 символы. Блин база большая - задалбаюсь все восстанавливать :( А от 3.23 надо сваливать , чет она плохо шевелиться после 2 млн записей....

anonymous

Забыл добавить - пытаюсь перенести базу на 5 mysql в федору кору 6. PS: через вебмин такой же облом.

anonymous
()

А сайт при подключении к MySQL серверу какую кодировку задает (чтоб MySQL сервер знал в какую кодировку конвертить при отдаче данных клиенту) ?

В каком виде русские символы показывает консольный mysql-клиент, после того, как в нем задать кодировку текущей локали, например:
set names koi8r;
?

spirit ★★★★★
()
Ответ на: комментарий от spirit

>А сайт при подключении к MySQL серверу какую кодировку задает (чтоб MySQL сервер знал в какую кодировку конвертить при отдаче данных клиенту) ?

Надо бы уточнить, но помойму или никакую или UTF8, да не в этом проблема - проблема в том что после того как перенес базу в SQL формате там УЖЕ потеряны символы UTF8 формата, они выглядят ?????? Через веб при обработке , вносе например новых данных по клиенту можно спокойно исправить . Т.е. и база сама и сам вебсайт что с базой крутится отлично с восстановленой базой работает, за исключением того что там придеться заново всех переписывать.

В каком виде русские символы показывает консольный mysql-клиент, после того, как в нем задать кодировку текущей локали, например: set names koi8r; ?

Там не русский язык в таблицах, там латиница с дибильными буквами аля "o-umlaut"

Я так понимаю что затык именно в ВНОСЕ ДАННЫХ через execute sql, т.е. восстановление базы. Как правильно то эти вещи делаются ? Типа из базы данных 3.23 перейти в базу данных 5.0 ( т.е. таблицы и тд сохранить включая их кодировки)

anonymous
()
Ответ на: комментарий от anonymous

> да не в этом проблема
Как раз в этом проблема и может быть: к примеру, данные в новую базу внесены правильно, а клиент при подключении не задает кодировку (иногда она по default-у устанавливается в latin1) - вот сервер и конвертит из UTF-8 в latin1 при отдаче клиенту.
Хорошо проверьте, чтоб сайт при подключении к базе тут же делал "set names utf8;" или "set character set utf8;".

spirit ★★★★★
()
Ответ на: комментарий от spirit

Хорошо проверьте, чтоб сайт при подключении к базе тут же делал "set names utf8;" или "set character set utf8;".

Да , все так.

Вобщим решил проблему в лоб. Сделал tar cf /var/lib/mysql/base_name.tar /var/lib/mysql/base_name

На сервере с 5 муськой tar xf base_name.tar в папку /var/lib/mysql.

И все работает как надо !

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.