In article <9f******************************@comcast.com>,
Jerry Stuckle <js*******@attglobal.netwrote:
I have a PHP cli script, that backups my databases, using mysqldump
via system().
When logged in with SSH, and launching the script with "./backup.php",
all works just as it should, but when I put it in a crontab:
00 2 * * * /home/sandman/bin/backup.php
I get a mail that says:
"mysqldump: Got error: 2002: Can't connect to local MySQL server
through socket '/var/run/mysqld/mysqld.sock' (2) when trying to
connect"
How come? Anyone knows what the difference is between CLI and crontab
that could cause this?
Well, for one thing, what's the user you have set up for your cron job?
The same user I'm executing it with when it's working.
Does it have permission to use the socket? Is it using the correct
socket?
Well, after looking, the socket "/var/run/mysqld/mysqld.sock" doesn't
seem to exist. I realize I should have checked that first, but since
it worked before, I assumed that wasn't the problem.
There DOES exist a /tmp/mysql.sock file, and I have now set up my PHP
script with "mysqldump -S /tmp/mysql.sock" and I'll see in the morning
if it throws the same errors.
But how come mysqldump finds a correct socket when I'm running it from
the shell but not when I'm running it through crontab?
--
Sandman[.net]