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: