чарсеты mysql

Post Reply
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

чарсеты mysql

Post by darkover »

Короче, собрался переносить смарт с двух серверов на новый, на одном старом - все таблицы в latin1, на другом старом все таблицы в utf8, как настраивать Mysql на новом сервере?
Да, еще какая лажа не понятная, все переменные голобальные у mysql стоят utf8, заливаю инсталяху, скрипт инсталит в эту базу таблицы latin1 и половина в mysam половина в innodb

http://my.jetscreenshot.com/10779/20130413-3pgm-215kb

Так и должно быть, или что-то не правильно работает ?
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: чарсеты mysql

Post by darkover »

Это фича что-ли при инстале ? В чем понт, понять не могу.
В wiki Лемон пишет, что нужно перенести в innodb rot* таблицы, а на деле, я сейчас ставлю новый скрипт, перед вводом данных мускл, тормознул и пошел смотреть дамп, а там

DROP TABLE IF EXISTS `admin_access_log`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `admin_access_log` (
`ip` bigint(20) NOT NULL DEFAULT '0',
`date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00'
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

Вот вопрос, на фига ?
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: чарсеты mysql

Post by admin »

Для таблиц без букв чарсет таблицы не имеет значения вообще.
Don't forget to run script update
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: чарсеты mysql

Post by darkover »

А для буквенных ?
rot_galleries

DROP TABLE IF EXISTS `rot_galleries`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `rot_galleries` (
.....................................................
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=latin1;
/*!40101 SET character_set_client = @saved_cs_client */;

Вот, смарт сам пишет, скритп после инстала, ничего там больше нет.
Mysql Table Engine: looks like mysql DB table rot_galleries is not of InnoD format. it's good idea to tune mysql and use innodb table format for rot_* tables. Please, read wiki for mysql tuning hints.

А половина таблиц установилась в innodb половина нет

http://my.jetscreenshot.com/10779/20130414-hhfk-169kb

Почему так ?
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: чарсеты mysql

Post by admin »

Darkover: ну эт просто путаница между тем что в таблице, collation поля и прерыванием апдейта.

Mysql error:: 1052 (Column 'alt' in field list is ambiguous) in query SELECT id, gallery_slug, g.gallery_md5, sponsor_id, url, source_url,
Это 99% прерванный апдейт
Никакого отношения к кодировке он не имеет.

1267 (Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '=')
это collation поля, к таблице тоже можно сказать что не имеет отношения. Таблицы создаются без указания Collation для каждого поля дабы попасть в дефолтный на серваке. Такая проблема возникает когда между апдейтами сменился мускл и там сменился дефолтный Collation соответственно. Но в апедйте вроде это тоже уже проверяется и фиксится.

И в догонку второй вопрос - в innodb желательно держать rot_* таблицы, но скрипт по дефолту инсталирует так, половина rot_* в innodb половина нет. Mysql 5.5
Да, желательно в целях экономии памяти. Но пара мелких таблиц все же в инно типа admins тк если мультиавторизация то там храняться пароли адина и тп, инно более устойчивая к падениям нежели myisam. Ну и весит копейки таблица.
Don't forget to run script update
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: чарсеты mysql

Post by darkover »

LemonS wrote:Таблицы создаются без указания Collation для каждого поля дабы попасть в дефолтный на серваке.
А в чем сакральный смысл, делать тогда таблицы в latin1 ?
Всем таблицам жестко указанно, в sci-pro.sql
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
И я у себя вижу в мускл, который весь в ютф8, вот такую картину

Image


А после того, как накатываю UP 50, вижу вот такое, часть таблиц еще так же выглядит.

http://my.jetscreenshot.com/10779/20130 ... d-55kb.jpg

И из-за этого, полезут ошибки, как я писал выше, где джойнятся таблицы, и в одной кодировка будет latin, в другой utf

Как сделать, что бы все было в utf и апы шли тоже в ютф ?
На одном сидже можно руками, на двух можно руками, на сотне ?

Спасибо большое за ответ!
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: чарсеты mysql

Post by admin »

Да , надо убрать в дефолтном указание кодировки.
в апедйте создаются таблицы так

CREATE TABLE IF NOT EXISTS `rot_gallery_info` (
`gallery_md5` char(32) NOT NULL,
`url` varchar(255) NOT NULL,
`source_url` varchar(255) NOT NULL,
`rot_content_id` int(10) unsigned NOT NULL,
`embed_template` varchar(50) NOT NULL,
`embed_code` text NOT NULL,
`flv_url` varchar(255) NOT NULL,
`flv_size_x` smallint(5) unsigned NOT NULL,
`flv_size_y` smallint(5) unsigned NOT NULL,
`flv_thumb_url` varchar(255) NOT NULL,
`tags` varchar(255) NOT NULL,
`casts` int(10) unsigned NOT NULL,
`clicks` int(10) unsigned NOT NULL,
`rating` float NOT NULL,
`crop_profile_id` int(10) unsigned NOT NULL,
`thumbs` text NOT NULL,
`grab_options` text NOT NULL,
`last_checked` int(10) unsigned NOT NULL,
`comment` varchar(255) NOT NULL,
PRIMARY KEY (`gallery_md5`),
KEY `url` (`url`),
KEY `source_url` (`source_url`)


те вообще без укзания каких-либо типов дабы оно создало по дефолтным для сервака настройкам.
Don't forget to run script update
darkover
Posts: 1574
Joined: Sat Apr 13, 2013 8:59 pm

Re: чарсеты mysql

Post by darkover »

admin wrote:Да , надо убрать в дефолтном указание кодировки.
в апедйте создаются таблицы так

те вообще без укзания каких-либо типов дабы оно создало по дефолтным для сервака настройкам.
Дык может имеет смысл дамп, который инсталятор ставит, пофиксить, а то народ ставит, потом такая фигня будет вылезать. Я то могу поменять в нем, на автомате, да его при инстале подсовывать, но это лишние телодвижения imho
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: чарсеты mysql

Post by admin »

Да , надо убрать в дефолтном указание кодировки.
будет завтра.
Don't forget to run script update
admin
Site Admin
Posts: 38004
Joined: Wed Sep 10, 2008 11:43 am

Re: чарсеты mysql

Post by admin »

Убрал в дефолтном варианте указание кодировки. Теперь везде будет дефолтная для сервака.
Don't forget to run script update
Post Reply