[syslog-ng] syslog-ng 3.0.1, open source edition, fails write to MySQL DB
Arnold Wang
arnold.wang at inovis.com
Thu Apr 23 23:01:34 CEST 2009
I figured out the problem. I have to use "host="127.0.0.1" to force it
using TCP connection. I have tried "(host="localhost", port=("3306")"
and it didn't work neither. I guess it is hard coded to use socket for
localhost which seems reasonable.
There is a related question on this. If I want to use socket connection,
how can I specify the socket file? It is by default using
"/var/run/mysqld/mysqld.sock" which is different than the one in RHEL.
-----Original Message-----
From: Arnold Wang <arnold.wang at inovis.com>
To: syslog-ng at lists.balabit.hu
Subject: Re: syslog-ng 3.0.1, open source edition, fails write to MySQL
DB
Date: Thu, 23 Apr 2009 13:06:55 -0700
After I posted to the list, first I did when I run into this problem, I
enabled the debug and noticed the following error:
Apr 23 15:58:15 alfnetengi01 syslog-ng[7826]: Error establishing SQL
connection; type='mysql', host='localhost', port='',
username='syslogadmin', database='syslog', error='2002: Can\'t connect
to local MySQL server through socket \'/var/run/mysqld/mysqld.sock
\' (2)'
It appears to me it try to connect to MySQL using sock instead of TCP,
as I original assumed. Is there a way to use TCP connection? I will play
around as well.
Thanks.
-----Original Message-----
From: Arnold Wang <arnold.wang at inovis.com>
To: syslog-ng at lists.balabit.hu
Subject: syslog-ng 3.0.1, open source edition, fails write to MySQL DB
Date: Thu, 23 Apr 2009 12:35:07 -0700
I have installed syslog-ng 3.0.1, open source edition, binary package in
RHEL 5.3 system. I'm having trouble to have it writing to MySQL DB using
native driver. The current configuration file looks like:
# Write the logs to MySQL DB
destination dd_mysql {
sql(type(mysql)
host("localhost") username("syslogadmin") password("syslogadmin")
database("syslog")
table("logs")
columns("host", "facility", "priority", "level", "tag", "datetime",
"program", "msg", "seq")
values("$HOST", "$FACILITY", "$PRIORITY", "$LEVEL", "$TAG",
"$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC", "$PROGRAM", "$MSG", "$SEQ")
indexes("seq"));
# program("/usr/bin/mysql -usyslogadmin -psyslogadmin syslog"
# template("INSERT INTO logs (host, facility, priority, level, tag,
datetime, program, msg, seq)
# VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG',
'$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG', '$SEQ' );\n")
# template-escape(yes));
};
It works if I use the program driver, as currently commented out.
The table is configured as following, using the schema defined by
php-syslog-ng 2.9.8m.
+----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra
|
+----------+---------------------+------+-----+---------+----------------+
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment
|
| host | varchar(128) | YES | MUL | NULL |
|
| facility | varchar(10) | YES | MUL | NULL |
|
| priority | varchar(10) | YES | MUL | NULL |
|
| level | varchar(10) | YES | | NULL |
|
| tag | varchar(10) | YES | | NULL |
|
| datetime | datetime | YES | MUL | NULL |
|
| program | varchar(15) | YES | MUL | NULL |
|
| msg | text | YES | | NULL |
|
| seq | bigint(20) unsigned | NO | MUL | 0 |
|
| counter | int(11) | NO | | 1 |
|
| fo | datetime | YES | | NULL |
|
| lo | datetime | YES | | NULL |
|
+----------+---------------------+------+-----+---------+----------------
What is the problem?
Thanks in advance for the help.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.balabit.hu/pipermail/syslog-ng/attachments/20090423/77bb674d/attachment-0001.htm
More information about the syslog-ng
mailing list