Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Zabbix: error 1005 (errno 121)  (Прочитано 5044 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BerkutDAV

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Zabbix: error 1005 (errno 121)
« : 13 Февраля 2011, 04:19:14 »
Итак по порядку. Был установлен из реп-ев Zabbix 1.8.1 на Ubuntu 10.04. LAMP ставил так же. После проблем с винтом, DB Zabbix начала рушить MySQL. Правильно удалить DB Zabbix-а не мог, т.к. прямо в процессе обращения к ней, всё зависало, в итоге убил её руками в /var/lib/mysql . Потом удалил её из synaptic, потом перезагрузился, MySQL заработал как надо. В выходные решил установить и настроить zabbix, но не тут-то было. Следующая ошибка появлялась как при установке из рип-ев, так и при "cat mysql.sql | mysql -u -p zabbix"и так же при импорте в phpmyadmin, не говоря про "mysql -u -p zabbix < /home/myuser/zabbix-1.8.4/create/schema/mysql.sql".
 
Ошибка выглядит так:
Цитировать
ERROR 1005 (HY000) at line 980: Can't create table 'zabbix.valuemaps' (errno: 121)
если использовать ключ -f, то следом после этой, получаем:
Цитировать
ERROR 1146 (42S02) at line 985: Table 'zabbix.valuemaps' doesn't exist

Перечитал кучу советов, самый распространённый: "удалите базу и создайте заново", но это не помогает, параноя довела меня до удаления всего что имело слово zabbix в названии, полному удалению mysql и установке последнего заново, но и это не принесло результат. Если после применения ключа -f, сделать запрос в DB zabbix (который я взял прямо из mysql.sql, который идёт в поставке zabbix) по созданию необходимой таблицы, получаю следующую ошибку:
Цитировать
SQL-запрос:

CREATE INDEX users_groups_1 ON users_groups(

usrgrpid,
userid
);



Ответ MySQL: 

#1061 - Duplicate key name 'users_groups_1'


dpkg -l | grep mysql возвращает:

Цитировать
ii  libdbd-mysql-perl                    4.012-1ubuntu1                                  A Perl5 database interface to the MySQL data
ii  libmysqlclient16                     5.1.41-3ubuntu12.9                              MySQL database client library
ii  mysql-client-5.1                     5.1.41-3ubuntu12.9                              MySQL database client binaries
ii  mysql-client-core-5.1                5.1.41-3ubuntu12.9                              MySQL database core client binaries
ii  mysql-common                         5.1.41-3ubuntu12.9                              MySQL database common files (e.g. /etc/mysql
ii  mysql-server                         5.1.41-3ubuntu12.9                              MySQL database server (metapackage depending
ii  mysql-server-5.1                     5.1.41-3ubuntu12.9                              MySQL database server binaries
ii  mysql-server-core-5.1                5.1.41-3ubuntu12.9                              MySQL database core server files
ii  php5-mysql                           5.3.2-1ubuntu4.7                                MySQL module for php5
rc  zabbix-server-mysql                  1:1.8.1-1ubuntu1                                network monitoring solution - server (using

Потеряв надежду, начал делать виртуалку с такой же ОС и ПО. В итоге: нулёвая 10.04, как и на основной машине - последние обновления, так же ставлю zabbix из реп-ев (встаёт прекрасно), потом удаляю его в папке, удаляю в synaptic, убеждаюсь что мой любимый, глючный phpmyadmin не видит никакого zabbix, перезагружаюсь, открываю synaptic, ставлю zabbix и получаю туже самую ошибку. Вот.

Перефразируя слова Владимира Ворошилова: "Внимание вопрос! Что в чёрном ящике?" спрошу: внимание вопрос, что мешает повторному развёртыванию zabbix-а, или где можно ещё почистить MySQL от остатков первой установки?


Я чайник, так что попроще, если можно :) .

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #1 : 13 Февраля 2011, 04:46:36 »
CREATE INDEX `tablename`.`users_groups_1` ON (
`tablename`.`usrgrpid`,
`tablename`.`userid`
);

Пробуй.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн BerkutDAV

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #2 : 13 Февраля 2011, 10:52:32 »
Благодарю. Напишу часть вариантов, которые как мне кажется, помогут понять мой уровень в этих вопросах :)

Первоначальный запрос имеет такой вид:

Цитировать
CREATE INDEX users_groups_1 on users_groups (usrgrpid,userid);
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid)
) ENGINE=InnoDB;


Следуя совету (кстати сильно сомневаюсь что всё правильно сделал :) ) :

Цитировать
CREATE INDEX
valuemaps, users_groups_1 ON (
   valuemaps, usrgrid,
        valuemaps, userid
);

Получаю:
Цитировать
#1064 - 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 '( valuemaps, usrgrid, valuemaps, userid )' at line 2
Соответственно, если первые две строки пишу в одну, как было предложено, получаю такую же ошибку, только в конце "line 1" (специально написал на одну строку больше, чтобы точно понимать где косяк.

Но гений чайника пошёл дальше и было написано:

Цитировать
CREATE INDEX
valuemaps,
users_groups_1 ON (
   valuemaps, usrgrid,
        valuemaps, userid
);


И оно мне вернуло ошибку в "Line 2", если я всё правильно понимаю, ему чем-то не нравится "valuemap,", если запятую после него убираем, получаем ошибку в "Line 3".

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #3 : 13 Февраля 2011, 12:34:13 »
Благодарю. Напишу часть вариантов, которые как мне кажется, помогут понять мой уровень в этих вопросах :)

Первоначальный запрос имеет такой вид:

Цитировать
CREATE INDEX users_groups_1 on users_groups (usrgrpid,userid);
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid)
) ENGINE=InnoDB;

Это два разных запроса.
Первый относится к предыдущей таблице. Так что дальше обсуждать это не имеет смысла :)
Найдите таблицу, к которой относится первый запрос - многое прояснится.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн BerkutDAV

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #4 : 13 Февраля 2011, 13:27:34 »
Ан нет, поторопился я радоваться :) Если делаю
Цитировать
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid)
) ENGINE=InnoDB;
Оно проходит, но полностью (я так понял что последняя строка относится к первым) не работает:
Цитировать
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid)
) ENGINE=InnoDB;
CREATE INDEX valuemaps_1 on valuemaps (name);
Выдаёт ту самую, заветную
Цитировать
SQL-запрос:

CREATE TABLE valuemaps(

valuemapid bigint unsigned DEFAULT '0' NOT NULL ,
name varchar( 64 ) DEFAULT '' NOT NULL ,
PRIMARY KEY ( valuemapid ) ) ENGINE = InnoDB;



Ответ MySQL: 

#1005 - Can't create table 'zabbix.valuemaps' (errno: 121)


Исследование продолжается :) .

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #5 : 13 Февраля 2011, 13:56:09 »
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid),
   INDEX (name)
) ENGINE=InnoDB;

(А если ты пытаешься повторять запросы, то точно ничего никогда не выйдет.)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн BerkutDAV

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #6 : 13 Февраля 2011, 14:11:27 »
Я не спорю(не тот уровень:) ), но просто интересно, раньше то получалось, да и сейчас получается, если на нулёвом всё делать, база ставится на раз, без всяких ошибок, а запросы она выполняет те же самые.

Разница лишь в том, что если удалить её из папки, минуя обращение к MySQL, а потом накатить снова, вот тогда начинаются проблемы, которые пока не решаются, я сейчас попробую с представленным запросом идти дальше, поглядим что получится,пока получается что строка
Цитировать
CREATE INDEX valuemaps_1 on valuemaps (name);
не выполняется, пропускается, а это наверняка где нибудь да вылезет.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #7 : 13 Февраля 2011, 14:36:36 »
Разница лишь в том, что если удалить её из папки, минуя обращение к MySQL, а потом накатить снова, вот тогда начинаются проблемы, которые пока не решаются,
Я затрудняюсь определить, что вы там колдунствуете... Но вообще-то всё должно работать при условии, что вы не трогаете файл db.opt и производите манипуляции с файлами при отключенном MySQL.

Цитировать
я сейчас попробую с представленным запросом идти дальше, поглядим что получится,пока получается что строка
Цитировать
CREATE INDEX valuemaps_1 on valuemaps (name);
не выполняется, пропускается, а это наверняка где нибудь да вылезет.
На запрос внимательно посмотрите :) Она выполняется, только не отдельно, а в составе запроса.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн BerkutDAV

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #8 : 13 Февраля 2011, 14:41:26 »
Сейчас имею следующую картину:

В phpmyadamin создаю DB zabbix  с utf-8_bin, далее с консоли делаю:

Цитировать
/zabbix-1.8.4/create/schema# cat mysql.sql | mysql -u -p zabbix -f
Получаю две ошибки:
Цитировать
ERROR 1005 (HY000) at line 980: Can't create table 'zabbix.valuemaps' (errno: 121)
ERROR 1146 (42S02) at line 985: Table 'zabbix.valuemaps' doesn't exist
Иду в phpmyadmin и делаю один запрос:

Цитировать
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid),
   INDEX (name)
) ENGINE=InnoDB;

Получаю:

Цитировать
#1005 - Can't create table 'zabbix.valuemaps' (errno: 121)
CREATE TABLE valuemaps(
valuemapid bigint unsigned DEFAULT '0' NOT NULL ,
name varchar( 64 ) DEFAULT '' NOT NULL ,
PRIMARY KEY ( valuemapid ) ,
INDEX ( name )
) ENGINE = InnoDB;



Ранее phpmyadmin проглатывал запрос, но не создавал таблицу. Теперь сходу пишет что к чему.

Пользователь решил продолжить мысль 13 Февраля 2011, 14:43:48:
Пока писал, получил ответ :) Первый раз база удалялась с выключенным MySQL, следственный эксперимент на виртуалке проводился в включённой MySQL (спать хотелось, торопился :) ) . Где db.opt лежит? :)
« Последнее редактирование: 13 Февраля 2011, 14:43:48 от BerkutDAV »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #9 : 13 Февраля 2011, 18:42:03 »
Ещё раз.
Цитировать
ERROR 1005 (HY000): Can't create table './MyDB/#sql-e4a_c715.frm' (errno: 121)

As mentioned above, you will get this message if you're trying to add a constraint with a name that's already used somewhere else.

There is really not much wrong with allowing innodb to choose the name for you. Simply omit the CONSTRAINT keyword when creating foreign keys.
Straight from http://dev.mysql.com/doc/refman/5.0/en/innodb-error-codes.html

К какому запросу относится строка 980 ?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн BerkutDAV

  • Автор темы
  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Re: Zabbix: error 1005 (errno 121)
« Ответ #10 : 13 Февраля 2011, 21:22:59 »
Цитировать
CREATE TABLE valuemaps (

Цитировать
CREATE TABLE valuemaps (
   valuemapid      bigint unsigned      DEFAULT '0'   NOT NULL,
   name      varchar(64)      DEFAULT ''   NOT NULL,
   PRIMARY KEY (valuemapid)
) ENGINE=InnoDB;

Пользователь решил продолжить мысль 13 Февраля 2011, 21:39:25:
Победа, она импортировалась, DB вставилась. Вот что сделал: благодаря твоему ответу, заинтересовался db.opt, сделал поиск, нашёл их, нашёл тот, что находится где-то в ///zabbix, зашёл туда, удалил там всё к чёртовой матери, правильно удалил остатки DB и нажал в глючном phpmyaadmin "Import", без вопросов прошло всё. Исследование продолжается.
« Последнее редактирование: 13 Февраля 2011, 21:39:25 от BerkutDAV »

 

Страница сгенерирована за 0.038 секунд. Запросов: 25.