null

Zoneminder: Out of range value for column 'Pid'

После очередного отключения питания Zoneminder 1.25 отказался запускаться сообщив:
 

DBD::mysql::st execute failed: 
Out of range value for column 'Pid' 
at row 1 at /usr/local/lib/perl5/site_perl/5.14.2/ZoneMinder/Logger.pm line 609.



Разработчики в схеме таблицы Logs для поля Pid выбрали тип данных smallint (от -32768 до 32767),а за время эксплуатации софтины номера записей превысили максимально допустимое значение для этого типа.

mysql> SHOW COLUMNS FROM Logs;
+-----------+----------------------+------+-----+---------+-------+
| Field     | Type                 | Null | Key | Default | Extra |
+-----------+----------------------+------+-----+---------+-------+
| TimeKey   | decimal(16,6)        | NO   | MUL | NULL    |       |
| Component | varchar(32)          | NO   |     | NULL    |       |
| Pid       | smallint(6)          | YES  |     | NULL    |       |
| Level     | tinyint(3)           | NO   |     | NULL    |       |
| Code      | char(3)              | NO   |     | NULL    |       |
| Message   | varchar(255)         | NO   |     | NULL    |       |
| File      | varchar(255)         | YES  |     | NULL    |       |
| Line      | smallint(5) unsigned | YES  |     | NULL    |       |
+-----------+----------------------+------+-----+---------+-------+
8 rows in set (0.04 sec)


Для решения возникшей проблемы я изменил тип данных для поля Pid на int (от -2147483648 до 2147483647):
 

mysql> ALTER TABLE Logs MODIFY Pid int;
Query OK, 116623 rows affected (0.70 sec)
Records: 116623  Duplicates: 0  Warnings: 0

mysql>
mysql> SHOW COLUMNS FROM Logs;
+-----------+----------------------+------+-----+---------+-------+
| Field     | Type                 | Null | Key | Default | Extra |
+-----------+----------------------+------+-----+---------+-------+
| TimeKey   | decimal(16,6)        | NO   | MUL | NULL    |       |
| Component | varchar(32)          | NO   |     | NULL    |       |
| Pid       | int(11)              | YES  |     | NULL    |       |
| Level     | tinyint(3)           | NO   |     | NULL    |       |
| Code      | char(3)              | NO   |     | NULL    |       |
| Message   | varchar(255)         | NO   |     | NULL    |       |
| File      | varchar(255)         | YES  |     | NULL    |       |
| Line      | smallint(5) unsigned | YES  |     | NULL    |       |
+-----------+----------------------+------+-----+---------+-------+
8 rows in set (0.11 sec)



 

Работаю в компании Tune-IT. Круг профессиональных интересов:
* Администрирование Solaris/FreeBSD/Linux
* CISCO
* Удаленная диагностика неисправностей в системах SUN
* Предотвращение сетевых атак
* Обеспечение безопасности UNIX-систем
* Обеспечение безопасности беспроводных сетей

Ещё на эту же тему:

Переключение "профилей" в Zoneminder
Первичная диагностика событий FMD-8000-0W наблюдаемых на CoolThreads-системах Sun.