Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обновление версии сервера
 
 автор: ronin80   (29.07.2008 в 10:51)   письмо автору
 
 

Вопрос в следующем: выполнил обновление версии сервера с 5.0.6 до 5.1.26, после обновления выполнил импорт базы через mysqldump.

Возникли два вопроса:

1. Сбросились все счётчики AUTO_INCREMENT у таблиц на 1. Обновил счётчики (ALTER TABLE ...), но после перезапуска сервера они опять сбрасываются на 1.

2. Делал экспорт в дамп (уже в новой версии сервера) через mysqldump, файл весит примерно 20 Мб, хотя старый дамп (из старой версии сервера) весит 50 Мб, почему так?

  Ответить  
 
 автор: ronin80   (29.07.2008 в 13:14)   письмо автору
 
   для: ronin80   (29.07.2008 в 10:51)
 

нашёл такую вот ерунду на сайте mysql.com

InnoDB supports the AUTO_INCREMENT = N table option in CREATE TABLE and ALTER TABLE statements,
to set the initial counter value or alter the current counter value.
The effect of this option is canceled by a server restart, for reasons discussed earlier in this section.

здесь я так понял говорится о том что после рестарта сервера конструкция auto_increment применяемая при
создании либо изменении таблицы игнорируется

после импорта базы я применял alter table table_name auto_increment = value во время сеанса
с базой, соответсвенно во время сеанса данное значение сохранялось, но после рестарта сервера
оно опять сбрасывалось на 1

таким образом вопрос в том как это исправить?

да кстати, про "for reasons discussed earlier in this section" - там говорится о механизме
присвоения полям auto_increment новых значений, и упоминается системная переменная
innodb_autoinc_lock_mode

кто сможет помочь, буду очень благодарен, потому что завис вопрос с переводом баз под новую
версию сервера

  Ответить  
 
 автор: ronin80   (29.07.2008 в 13:19)   письмо автору
 
   для: ronin80   (29.07.2008 в 13:14)
 

вот ссылочка если кому поможет

http://dev.mysql.com/doc/refman/5.1/en/innodb-auto-increment-handling.html

  Ответить  
 
 автор: ronin80   (29.07.2008 в 13:26)   письмо автору
 
   для: ronin80   (29.07.2008 в 13:19)
 

судя по тексту, при запуске сервера происходит инициализация счётчика для каждой таблицы, который сохраняется в оперативной памяти на всё время сеанса.

получается у меня не происходит этой инициализации?

  Ответить  
 
 автор: cheops   (29.07.2008 в 13:49)   письмо автору
 
   для: ronin80   (29.07.2008 в 13:14)
 

Не понятно, у вас таблицы пустые? Если да, то с какой целью устанавливаются начальные значения счетчика? Вообще такого не должно быть, у вас какой тип таблиц используется?

  Ответить  
 
 автор: ronin80   (29.07.2008 в 13:57)   письмо автору
 
   для: cheops   (29.07.2008 в 13:49)
 

база не пустая, в таблицах есть строки, соответственно AUTO_INCREMENT не 1

перенёс базу через дамп со старой версии на новую, счётчики сбросились на 1

  Ответить  
 
 автор: cheops   (29.07.2008 в 14:02)   письмо автору
 
   для: ronin80   (29.07.2008 в 13:57)
 

Удивительно, посмотрите внутри дампа операторы CREATE TABLE в них параметр AUTO_INCREMENT присутствует и какое значение он принимает? Отличное от 1?

  Ответить  
 
 автор: ronin80   (29.07.2008 в 14:43)   письмо автору
 
   для: cheops   (29.07.2008 в 14:02)
 

в дампе в конструкции CREATE TABLE параметр AUTO_INCREMENT отсутствует

  Ответить  
 
 автор: Proger   (29.07.2008 в 16:59)   письмо автору
 
   для: ronin80   (29.07.2008 в 14:43)
 

При создании дампа нужно было поставить галочку "Сохранить AUTO_INCREMENT"

  Ответить  
 
 автор: ronin80   (29.07.2008 в 17:29)   письмо автору
 
   для: Proger   (29.07.2008 в 16:59)
 

пробовал и в дампе прописать значение AUTO_INCREMENT в конструкции CREATE TABLE, не помогло, после рестарта сервера счётчик сбрасывается на 1.

я так понял это косяк сервера, поставил версию 5.1.16, всё заработало как надо

  Ответить  
 
 автор: cheops   (30.07.2008 в 13:56)   письмо автору
 
   для: ronin80   (29.07.2008 в 17:29)
 

Ну вообще говоря ветка 5.1.x пока не является релизом, хотя очень близка к этому. Поэтому ошибки в ней могут встречаться.

  Ответить  
 
 автор: Trianon   (29.07.2008 в 17:28)   письмо автору
 
   для: ronin80   (29.07.2008 в 14:43)
 

>в дампе в конструкции CREATE TABLE параметр AUTO_INCREMENT отсутствует
Это баг младших версий ветки 5.0.* . Позже был исправлен.
Дамп нужно либо руками поправить... либо залить, исправить таблицы и снять по новой на новом сервере.

  Ответить  
 
 автор: ronin80   (29.07.2008 в 17:30)   письмо автору
 
   для: Trianon   (29.07.2008 в 17:28)
 

как я и писал всё это пробовал (исправлять, перезаливать), не помогает, поставил младшую версию, сработало.

  Ответить  
 
 автор: cheops   (29.07.2008 в 13:51)   письмо автору
 
   для: ronin80   (29.07.2008 в 10:51)
 

>2. Делал экспорт в дамп (уже в новой версии сервера) через mysqldump, файл весит
>примерно 20 Мб, хотя старый дамп (из старой версии сервера) весит 50 Мб, почему так?
Сложно сказать, без сравнения дампов, может кодировка теперь UTF-8, а раньше была однобайтовая? Или используется полная вставка, вместо краткого или многострочного варианта (последнее, кстати, можно настроить, правда в не phpMyAdmin, хотя может и там уже прикрутили настройку).

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования