How to fix Database connection problem on modsecparse.pl file?

Are you receiving the Modsec Database Failure cron error continuously ?  Mostly these mod security error caused due to mysql connection problem. You should check your mysql connectivity on modsecparse.pl file.

mod security DB error

[email protected] [~]#/etc/cron.hourly/modsecparse.pl:
DBI connect('modsec:localhost','modsec',...) failed: Access denied for user 'modsec'@'localhost' (using password: YES) at /etc/cron.hourly/modsecparse.pl line 19
Unable to connect to mysql database at /etc/cron.hourly/modsecparse.pl line 19.

Also check with your apache webserver whether the mod_security installed properly. Use the following commands to verify the installation status and confirm if they are loading.

# find /usr/local/apache -regex ".*modsec.*\|.*mod_security.*" | sort
# /usr/local/apache/bin/httpd -l | grep "unique_id"
# /usr/local/apache/bin/httpd -M | egrep "sec|unique_id"

Please make sure the password used on the “my $dbpassword” line in /etc/cron.hourly/modsecparse.pl matches the “modsec” password in MySQL.

 

mysql >use mysql;
mysql > update user set Password=password('PASSWORDHERE') where User='modsec';
mysql> flush privileges;
mysql> quit;

 

If you still received the database connection problem on modsecparse.pl then the modsecparse.pl script is trying to connect to the socket at /tmp/mysql.sock, but the location of the socket is /var/lib/mysql/mysql.sock. The mod security script use a localhost connection to determine the actual location of the socket file. Anyway set the value mysql_socket location instead of localhost to fix it.

# my $dbhost = ‘localhost’;
my $dbhost = ‘mysql_socket=/var/lib/mysql/mysql.sock’;

After that changes you manually check the mod sec perl file.

[email protected] [/]# /etc/cron.hourly/modsecparse.pl
[email protected] [/]#

 

5.00 avg. rating (96% score) - 2 votes
Website Pin Facebook Twitter Myspace Friendfeed Technorati del.icio.us Digg Google StumbleUpon Premium Responsive