Ошибка обновления Zabbix до 5 версии (MySQL)

Ошибка обновления Zabbix до 5 версии (MySQL)

При обновлении zabbix с 4.4 до 5.0 получил несколько ошибок.

Incorrect default charset for Zabbix database: «latin1» instead «UTF8».

Выполните в базе данных:

ALTER DATABASE zabbix DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;

Однако после этого появится другая ошибка:

Unsupported charset or collation for tables: acknowledges, actions, alerts, и т.д.

Выполняйте каждую команду по очереди в mysql. Каждая команда сформирует список команд alter table для ввода. Выполните их:

Команда 1 (список таблиц):

SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' COLLATE=utf8_bin;') AS cmd FROM (SELECT table_schema, table_name, table_collation FROM information_schema.tables t WHERE table_schema = 'zabbix' AND table_collation != 'utf8_bin') AS tables ORDER BY cmd;

Команда 2 (список столбцов, работает долго):

SELECT CONCAT('ALTER TABLE ', table_schema, '.', table_name, ' MODIFY COLUMN ', column_name, ' ', column_type, ' CHARACTER SET utf8 COLLATE utf8_bin', defaultval, nullable, ';') AS cmd FROM (SELECT table_schema, table_name, column_name, collation_name, character_set_name, column_type, column_default, CASE WHEN column_default IS NULL THEN '' ELSE CONCAT(' DEFAULT ''', column_default, ''' ') END AS defaultval, CASE WHEN is_nullable = 'NO' THEN ' NOT NULL ' ELSE '' END AS nullable FROM information_schema.columns WHERE table_schema = 'zabbix' AND ( collation_name != 'utf8_bin' OR character_set_name != 'utf8' )) AS cols ORDER BY cmd;

источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *