Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте.
Является ли достаточным для конвертации базы данных из кодировки cp1251 в UTF-8 следующие манипуляции:
Неактивен
Нет.
create table a (id int,name varchar(255) character set cp1251, unique key (name));
insert into a values(1,'веселый'),(2,'весёлый');
mysql> ALTER TABLE a CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
ERROR 1062 (23000): Duplicate entry 'весёлый' for key 'name'
Кроме того, конструкция CONVERT TO CHARACTER SET меняет также и дефолтную кодировку таблицы.
Неактивен
Спасибо за ответ.
Это не нужно, правильно я понял?
Неактивен
fuze написал:
Это не нужно, правильно я понял?
[syntax=php]$inDB->query('ALTER TABLE '.$table['Tables_in_'.$inConf->db_base].' DEFAULT CHARACTER SET utf8');[/syntax
да
fuze написал:
По поводу буквы ё какой выход? Дважды конвертировать, сначала в utf8_bin, потом в utf8_general_ci?
Просто в bin, дважды не поможет.
fuze написал:
Еще какие-нибудь варианты конвертации базы есть (кроме консольного и конвертации дампа)?
С помощью php скрипта как это делаете вы
Неактивен
vasya написал:
Просто в bin, дважды не поможет.
Т.е. просто сконвертировать базу в utf8_bin и работать с таким сравнением?
Неактивен
fuze написал:
Т.е. просто сконвертировать базу в utf8_bin и работать с таким сравнением?
да.
Неактивен
vasya, спасибо за ответы.
Неактивен
Вопрос в контексте темы:
Как быть с полнотекстовым поиском, регистр то теперь учитывается - utf8_bin.
Сравнения кроме utf8_bin есть, которые бы нормально работало с "ё" и т.п.
в общем чтобы о овцы целы и волки сыты)
Неактивен
Я правильно понимаю, что Вы ищете сопоставление cp1251_general_cs?
Неактивен
paulus написал:
Я правильно понимаю, что Вы ищете сопоставление cp1251_general_cs?
Я не знаю, что я ищу) Я хочу, чтобы работал полнотекстовый поиск в сравнении utf8 без учета регистра, как он работал при сопоставлении cp1251_general_ci.
Возможно ли это в принципе?
Отредактированно fuze (04.04.2012 13:09:33)
Неактивен
Салют базовики!
У меня тут одна базка на 3.23 требуют перейти на 4.1.3 и выше.. НАсколько реально.или .геморно..? неужели надо переходить на все предыдущие или можно сразу скакнуть ?
Неактивен
Можно сразу, но обратите внимание на кодировки http://sqlinfo.ru/articles/info/5.html
Неактивен
rgbeast написал:
Можно сразу, но обратите внимание на кодировки http://sqlinfo.ru/articles/info/5.html
Спасибо за ответ.. Попытался на 5.5 сразу же махнуть. (У него хоть грамотная оболочка Workbench имеется). сделал экспорт в скрипт.. Потом попытался импортнуть.. куча матов )).. вобщем не все так просто получается... Поскоку полный лох в это деле, был бы рад чисто философским советам типа... слить в файл старую из 3.23, потом чонитьтам задать на 5.5 и импортнуть... Если такое возможно..
Неактивен
Опишите ошибки, которые возникли при импорте? Там всего несколько слов нужно поправить и ошибок не будет.
Неактивен
rgbeast написал:
Опишите ошибки, которые возникли при импорте? Там всего несколько слов нужно поправить и ошибок не будет.
03:02:59 Restoring C:\Temp\stimul_wbnk.sql
Running: mysql.exe --defaults-extra-file="c:\users\admini~1\appdata\local\temp\tmpizifrp.cnf" --host=localhost --user=root --port=3307 --default-character-set=utf8 --comments --database=stimul_wbnk < "C:\\Temp\\stimul_wbnk.sql"
ERROR 1064 (42000) at line 12: 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 'TYPE=MyISAM' at line 11
Operation failed with exitcode 1
03:03:00 Import of C:\Temp\stimul_wbnk.sql has finished with 1 errors
Типа того
А вот строка 12
CREATE TABLE `audit` (
`id` int(11) unsigned NOT NULL auto_increment,
`login` varchar(20) default NULL,
`ip_addr` varchar(15) default NULL,
`tablename` varchar(30) default NULL,
`oper` varchar(10) default NULL,
`dt_oper` datetime default NULL,
`zn` varchar(254) default NULL,
`sqlbody` text,
PRIMARY KEY (`id`)
) TYPE=MyISAM;
Отредактированно Зыч (25.11.2013 12:08:22)
Неактивен
Слово TYPE замените на ENGINE
Неактивен
vasya написал:
Слово TYPE замените на ENGINE
Вроде как прорвало на чуть-чуть а потом снова пошли ошибки.... значится не так все просто... Я так понял что там есть возможность с живой базы импорнуть ? подключившись к старому серверу..?
Неактивен
С живой нельзя. Какие еще ошибки возникли?
Неактивен
rgbeast написал:
С живой нельзя. Какие еще ошибки возникли?
У меня такое предчувсствие что это тока начало )
---------------------------------------------------------------------------------------------------
Creating schema newschema
03:22:47 Restoring C:\Temp\stimul_wbnk.sql
Running: mysql.exe --defaults-extra-file="c:\users\admini~1\appdata\local\temp\tmp6lyui8.cnf" --host=localhost --user=root --port=3307 --default-character-set=utf8 --comments --database=newschema < "C:\\Temp\\stimul_wbnk.sql"
ERROR 1366 (HY000) at line 116: Incorrect string value: '\xD1\xCA-\xD0\xE5\xF2...' for column 'sqlbody' at row 1
Operation failed with exitcode 1
03:22:47 Import of C:\Temp\stimul_wbnk.sql has finished with 1 errors
-------------------------------------------------------------------------------------------------
Хотя в строке 116 вроде такого криминального ничего нету по сравнению с предыдущими
INSERT INTO `audit` VALUES("45199","346331","10.122.22.119","","LOGIN","2013-10-03 10:44:59","","");
Неактивен
какая кодировка данных? Указано ли SET NAMES имя_кодировки в начале файла дампа?
Неактивен
rgbeast написал:
какая кодировка данных? Указано ли SET NAMES имя_кодировки в начале файла дампа?
Нет ничего не указано... Там что-то пробегало насчет utf8.. Значит мне надо ее поставить?
Неактивен
Посмотрите в какой кодировке файл и напишите set names имя_кодировки в начало файла. Альтернативно перекодируйте файл в utf8 и напишите SET NAMES UTF8. Посмотрите еще раз статью, на которую давал ссылку в начале.
Неактивен
rgbeast написал:
Посмотрите в какой кодировке файл и напишите set names имя_кодировки в начало файла. Альтернативно перекодируйте файл в utf8 и напишите SET NAMES UTF8. Посмотрите еще раз статью, на которую давал ссылку в начале.
Спасибо за помошь.. потихоньку движется..чую как постепенно становлюсь MYSQL админом))
Неактивен
Всем привет. Есть база MySQL в кодировке win1251, при перекодировке в utf8 обрезаются данные строке text . Пробывал конвертировать средствами php, програмнно на компе и потом архивом закидывал в phpmyadmin, SQL запросом, без разницы. Данных в в строке не много
Неактивен