[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