[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

mysql ok, apache ok, but mysql+apache BROKEN!



this started out as quite on-topic (as a result of adhering
to advice from debian-user on zapping my 'mysql' package set).
sorry if it's drifted a bit... if so, please redirect me to
the proper authorities/list. thanks!

okay. i reinstalled mysql (it was working, but with
'mysql-shared' which is apparently not a debian package,
it *seemed* a prudent thing to do.) i wish i'd left it alone.

i'm using apache with randall schwartz's Stonehenge::DBILog
module to INSERT (sql) http requests into a MYSQL database.

rather, i WAS, until the apt-get --purge and apt-get install.

from /var/log/apache/errors.log:
[Mon May  8 01:11:06 2000] [error] [Mon May  8 01:11:06 2000] null:
Can't locate object method "log" via package "Apache" at
/usr/local/lib/site_perl/Stonehenge/DBILog.pm line 95.

statement at line 95 is the $r->log->error() line:
	if ($@) {
		open LOG,">>/etc/apache/LOG"; print LOG "$@\n"; close LOG;
		$r->log->error("dbi: $@");
	}

so it's implying that a perl module is broken, since $r is from
	sub handler { my $r = shift; ...
just as mentioned in 'perldoc Apache' under 'client request params'.

my own debug kludge (see code above) to /etc/apache/LOG results in:

[Mon May  8 01:15:27 2000] null: DBI->connect failed: Access denied
for user: 'www-data@localhost' (Using password: YES) at
/usr/local/lib/site_perl/Stonehenge/DBILog.pm line 87

line 87 is the connect, with $DB_USER=='www-data' and $DB_PSWD=='':

eval {
	my $dbh =
DBI->connect($DSN, $DB_USER, $DB_PSWD, { RaiseError => 1 });
	my $sth = $dbh->prepare_cached($INSERT);
	$sth->execute(@data);
	$dbh->disconnect;
};

so the error looks like a simple password/user access snag; 
yet i set up 'www-data' thus:

	grant select,insert,update,delete on *.* to 'www-data';

(select * from user confirms YYYYnnnnnnnnnn permissions for www-data,
with host set at '%' and no password; table mysql.tables_priv is empty.)

# dpkg -l \*mysql\* | grep ^i
ii  libdbd-mysql-perl  1.2202-4        mySQL database interface for Perl
ii  libmysqlclient6    3.22.30-2       mysql database client library
in  mysql-bench        3.22.32-2       (no description available)
ii  mysql-client       3.22.32-1       mysql database client binaries
ii  mysql-doc          3.22.32-1       mysql database documentation
ii  mysql-manual       0.95-2          Unofficial MySQL 3.20 Documentation
ii  mysql-server       3.22.32-1       mysql database server binaries

sure would like to know what broke this DBILog routine. (it was
fine before the apt-smash on mysql. i've tried apt-get --reinstall
too, on the above-listed packages, and it's still broke.)

potato/frozen (kernel still 2.0.36)
mysql server 3.22.32-log
$DBI::VERSION = "1.13"
$DBD::mysql::VERSION = '2.0402'

i'm quite at a loss. is this an access problem (username/passwd) or
was a perl module scrambled? i'd love a recommendation on how to
track this down... help?

i could switch to postgresql for this if it'd adhere to the standard
type_info routines, but...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Their is five errers in this sentance.


Reply to: