SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 02.11.2007 22:49:09

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

update mysql-сервера

У нас сейчас стоит 5.0.18
в этой версии есть как минимум одна раздражающая бага, при попадании в список enum какого либо слова с русской буквой "я" - таблица перестает работать. Когда то читал, что это официально признанный баг и они его обещали пофиксить.
В установленном на винде 5.1.22 данная бага не воспроизводится, хотя это может быть по нескольким причинам, либо багу исправили либо например не создается аналогичный косплект условий (например кодировка сервера другая или еще какая-нть характеристика)

Попытался сейчас посмотреть пофикисили или нет - нифига не нашел, ни упоминаний про баг ни упоминаний про то пофиксили или нет. Поэтому вопроса два - если кто то разбирается в том как найти подобную информацию в материалах mysql - помогите найти, пожалста...

1а. почти в каждом билде 5.1.1 - 5.1.22 есть "несовместимые изменения" со старыми версиями - есть ли где то общий список не совместимостей между 5.1.22 и например 5.1.1 (или даже 5.0.45) - или единственный способ их узнать - пробегаться по хистори и выписывать из каждого билда,



вопрос 2, косвенно вытекающий из 1. Есть желание сервер отапдейтить, особенно если это избавит от вышеупомянутого глюка, но тут другая непонятка, какую версию ставить? Сейчас есть GA (<-что это) 5.0.45  и RC 5.1.22
Причем даже купленная не так давно книга по mysql часто ссылается на фичи mysql 5.1 хотя, если я правильно понял у неё даже не было ещё релиза. Насколько потенциально-опасно ставить 5.1.22 или все таки не стоит рисковать и ограничится 5.0.45?

Отредактированно Shopen (02.11.2007 22:50:38)

Неактивен

 

#2 02.11.2007 22:56:06

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: update mysql-сервера

самый простой способ узнать о наличии баги - проверить есть она или нет

1. наверное надо проходить по билдам, другого способа не знаю

2. с 5.1 рисковать не стоит, там есть баги неисправленные, которые могут в продакшене помешать очень сильно. Дождитесь релиза, который ожидается в конце года, до тех пор используйте 5.0

Неактивен

 

#3 02.11.2007 23:08:59

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: update mysql-сервера

А как проверить то?
это же нужно машину, на которой поднимать последовательно версии mysql - и там проверть жива еще бага или нет?
весёлое занятие smile

на нашем 5.0.18 она есть - проверено

Неактивен

 

#4 03.11.2007 00:55:17

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: update mysql-сервера

Если напишете, как воспроизвести багу - могу попробовать на 5.0.32 / 5.0.45.

Неактивен

 

#5 03.11.2007 01:10:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: update mysql-сервера

Достаточно проверить на последней из серии 5.0. Конечно, если сможете найти багу на bugs.mysql.com, то там будет и патч и версия, но бывает, что баги фиксятся неявно при внесении общих улучшений кода или при исправлении других баг. Если нужна точная версия - то можно ее найти бисекцией за log(числа версий) количество переборов пусть в 5.0.18 есть, в 5.1.22 нет - делите интервал пополам - проверяете в 5.0.40, затем оставшийся интервал пополам.

Неактивен

 

#6 03.11.2007 01:46:56

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: update mysql-сервера

Проверка сама по себе очень простая:

1. открываем QB
2. пишем следующий запрос:

Код:

CREATE TABLE `enum_bug` (
  `e` enum('я','ты','он','она') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp125

3. смотрим что получилось

Код:

SHOW CREATE TABLE enum_bug

Если результат совпадает с тем чего хотели - значит бага нет. если не совпадает - есть.

на локальной машине у меня все ОК (win, RC 5.1.22),
на сервере (SUSE SLED 10, 5.0.18) результат такой:

Код:

CREATE TABLE `enum_bug` (
  `e` enum('','','ты','он','она') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

как видно - буква я попросту исчезла из определения.
дальнейшая работа с таблицей у которой такое описание - невозможна.

если в списке определений enum вместо  ('я','ты','он','она') написать что-нибудь типа enum('аня','миша','соня') то все становится настолько плохо, что после создания таблицы запрос show create table даже результата вернуть не может:

Код:

ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...

Проверьте, если не трудно на 5.0.45

Отредактированно Shopen (03.11.2007 01:49:29)

Неактивен

 

#7 03.11.2007 01:54:20

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: update mysql-сервера

В 5.0.22 бага есть

mysql> set names koi8r;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE `enum_bug` (   `e` enum('я','ты','он','она') NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Query OK, 0 rows affected (0.00 sec)

mysql> show create table enum_bug;
+----------+-------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                |
+----------+-------------------------------------------------------------------------------------------------------------+
| enum_bug | CREATE TABLE `enum_bug` (
  `e` enum('','','ты','он','она') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 |
+----------+-------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.0.22    |
+-----------+
1 row in set (0.00 sec)

mysql> CREATE TABLE `enum_bug2` (   `e` enum('аня','ты','он','она') NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Query OK, 0 rows affected (0.01 sec)

mysql> show create table enum_bug2;
+-----------+----------------------------------------------------------------------------------------------------------------+
| Table     | Create Table                                                                                                   |
+-----------+----------------------------------------------------------------------------------------------------------------+
| enum_bug2 | CREATE TABLE `enum_bug2` (
  `e` enum('ан','','ты','он','она') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 |
+-----------+----------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Неактивен

 

#8 03.11.2007 02:00:54

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: update mysql-сервера

зачем koi8r? или это не имеет значения?

я именно поэтому написал про QB - из него запрос насколько я понимаю уходит на сервер в cp1251.

может поэтому вторая таблица, пусть и обглоданная но вернулась от сервера. У меня то вообще exception возвращается. Хотя возможно что к 22 билду ЭТУ часть бага поправили.

Неактивен

 

#9 03.11.2007 02:04:40

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: update mysql-сервера

Кстати из за safe-обертки не замечал.
Оказывается второй, приведенный мной запрос приводит к крэшу сервера, щас проверял когда - mysql-сервер рестартанул..

во блин

Неактивен

 

#10 03.11.2007 02:07:32

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: update mysql-сервера

koi8r - так как у меня консоль в koi8r, QB ИМХО отправляет в utf8, но это не важно (важно только совпадение SET NAMES и кодировки в которой отправлено), так как создается таблица в той кодировке, в которой объявлена

Неактивен

 

#11 03.11.2007 02:27:02

Shopen
Гуру
Откуда: Москва
Зарегистрирован: 22.10.2007
Сообщений: 362

Re: update mysql-сервера

а что в 5.0.45?

Неактивен

 

#12 03.11.2007 07:12:05

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: update mysql-сервера

Код:

[paulus.ru] root test > CREATE TABLE `enum_bug` (
    ->   `e` enum('я','ты','он','она') NOT NULL
    -> ) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Query OK, 0 rows affected (0.01 sec)

[paulus.ru] root test > SHOW CREATE TABLE enum_bug\G
*************************** 1. row ***************************
       Table: enum_bug
Create Table: CREATE TABLE `enum_bug` (
  `e` enum('я','ты','он','она') NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
1 row in set (0.00 sec)

[paulus.ru] root test > SELECT VERSION();
+------------------------+
| VERSION()              |
+------------------------+
| 5.0.45-Debian_1ubuntu3 | 
+------------------------+
1 row in set (0.01 sec)

Хочу заметить, что непоявление буквы "я" может быть связано еще с Вашим
терминалом. Дело в том, что "я" в cp1251 - это ASCII 255, который по стандарту
не передается через telnet-соединения (без специальной поддержки). Поэтому
если Вы смотрите в cp1251-telnet-подобном терминале, Вы можете ее просто
не увидеть.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson