acarsd with MySQL

acarsdのログをMySQLのDBに保存する方法を解説します

MySQLのセットアップや設定は前もって行ってください
初期状態ではrootのパスワードが設定されておらず、大変危険です
かならずrootのパスワードを設定しましょう

DBの作成

acarsdをインストールしたディレクトリーにmysql.datというファイルがあります
このファイルにはMySQLのDBを作成するための手順が記入されています
GRANTの部分は必要に応じて修正します
GRANT ALL PRIVILEGES ON ACARS.* TO ※1 IDENTIFIED BY "※2" WITH GRANT OPTION;
※1 : ユーザー名です
※2 : パスワードです
mysql -u root -p < mysql.datで一気にDBを作成出来ます
DBはACARSという名前で作成されます。DB名は大文字ですので注意してください
一応show databases;コマンドで、ACARSというDBが作成されているのを確認しましょう

acarsdの設定

DBが正常に作成出来たら、acarsdの設定を行います
setup.exeを実行し、Configuration/InstallationメニューからMySQLを選択します
Fig1の画面になります
acarsd setup DBFig1

MysqlHostにはMySQLを実行しているホスト名(IPアドレス)を入力します
MysqlPortにはMySQLのPort番号を入力します(変更していなければ3306です)
MysqlUserにはDB作成の際に※1で指定したユーザー名を入力します
MysqlPassにはDB作成の際に※2で指定したパスワードを入力します
MysqlDBNameにはACARSと入力します(DBを別の名前で作成したのなら、その名前)
MysqlCreateTabをチェックします
Configuration/InstallationメニューからWrite new acarsd.iniを選択します
これで設定が保存されます

acarsdの起動

acarsdを起動します。MySQLと正常に接続出来た場合
Connection to MySQL Server ○○ establishedというメッセージが表示されます
○○はMySQLを実行しているホストが入ります
このメッセージが表示されない場合は、何らかの問題があります
なお、acarsd1.65では、なぜかNo MySQL Settings definedと表示され、うまくいきません
バグではないかと思いますが、調査中です
本家掲示板でも、この質問がありますが、解決していないようです
acarsdとMySQLが同じOSで動いていると、うまくいくようです

確認

mysql -u※1 -p ACARS(※1はユーザー名)
select * from ACARS;
で確認します。受信データが表示されればok
\qで終了します

おまけ

MySQLにデータを送るようにすると、acarsdでぽーんという音と共に、赤のメッセージが表示されます
Your insert statement could not be inserted!実際のINSERTコマンドが続くのようなメッセージです
これが出力される原因はいくつかあります
まずは重複キー、受信データがだぶっていて、そのためにduplicate keyになりinsertが失敗します
次に受信データに特殊な文字が含まれているため、insertに失敗する場合もあります
今のところこれらは避けようがありません、ぽんぽんうるさいですが、我慢しましょう



inserted by FC2 system