お世話になります。
現在、icmppingを利用した死活監視を行っております。
トリガーの設定において、トリガー名には現在以下を設定しています。
"Host {HOSTNAME} is unreachable"
このトリガー名を日本語で設定したいのですが、設定をすると"????"と設定名が変更されてしまいます。
利用環境は以下の通りとなりますが、解決案はありますか?
・利用機器:OpenBlockS AX3
・OS:armv7l Debian wheezy
・Zabbixのバージョン:1.8.2
TNK - 投稿数: 4769
まずは、Zabbix用に作成したデータベースの文字コードがutf8にな
っているか確認してみてください。
albiero - 投稿数: 5
ご回答ありがとうございます。
"show variables like 'char%';"および、"show table status;"の内容を確認し、utf8へと変更し、反映を確認しました。
その後、再度トリガー名に2バイト文字を入れてみると、今度は以下の様なエラーが発生します。
###
Error in query [SELECT DISTINCT t.* FROM triggers t,functions f,items i,hosts h WHERE ((t.triggerid BETWEEN 000000000000000 AND 099999999999999)) AND t.description='Host {HOSTNAME} is unreachableあああ' AND f.triggerid=t.triggerid AND f.itemid=i.itemid AND h.hostid=i.hostid AND h.host='********'] [Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '=']
###
また、mysqlの/etc/myslq/my.cnf内で以下を追加しています。
[mysqld]
init-connect='SET NAMES utf8';
設定情報上はUTF8になっていますが、まだ何か足りてないのでしょうか…
KAZ - 投稿数: 1085
足りてないような…A(^^;
こんなかんじになってますか?
一度、mysqldumpしてデータ領域を削除してから作りなおしてデータリストアしたらどうなりますか?
albiero - 投稿数: 5
KAZさん、ご回答ありがとうございます。
双方とも確認しておりますが、結果に差分も無く、各テーブルも既にutf8へと変更しておりまして…
データベースを作り直して試してみたいと思いますorz
KAZ - 投稿数: 1085
albieroさん
下記のメッセージだとlatin1とutf8が混じっているといっているような…
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='
データを移行しなくて良いならDBのみ最初から作ったほうが綺麗になると思います。A(^^;
TNK - 投稿数: 4769
何をどのように実行してutf8に変更されたのでしょうか?
エラーメッセージを拝見する限り、文字コード、特に照合順序設定
の整合性が取れていないようです。
変更前の状態と、どのような手順で変更されたのかお教えください。
ご参考までに、以下のURLでkodaiさんが書かれていますが、データ
ベースの文字コードだけではなく、
SHOW TABLE STATUS;
などを利用して各テーブルの状態も確認して、照合順序などが統一
されていないようであれば、テーブルがutf8に統一できていない可
能性が考えられますので、
ALTER TABLE テーブル名 CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
などと実行して、文字コードと照合順序で利用するコードをきちん
と統一してみてください。
ご参考:
http://www.zabbix.jp/node/975
albiero - 投稿数: 5
TNKさん、KAZさん、ご協力ありがとうございます。
各テーブルの文字コードをlatin1→utf8への変換は既に実施しておりまして、show table status;等のコマンド上ではutf8で反映を確認しております。
KAZさんからのアドバイスを受け、mysqldumpを実施し、以下の手順を行う事により無事に日本語表示が可能となりました。
/////
# /etc/init.d/zabbix-server stop
# mysqldump -u root -p zabbix > /root/mysqldump.db
# mysql -u root -p
mysql> drop database zabbix;
mysql> create database zabbix character set utf8;
mysql> quit
# perl -pi -e 's/latin1/utf8/' /root/mysqldump.db
# mysql -u root -p zabbix < zabbix.db
# /etc/init.d/zabbix-server start
/////
"show variables like 'char%';"や、"show table status"の確認しか行っておりませんでしたので、当方の確認漏れかと思います。
最初からログを掲載出来なかったのも反省点ですorz
この度は誠にありがとうございました。