On 2007-12-13 at 22:20 -0600, Craig Jackson wrote:
> > But I still have a big problem. Even though this works fine
> > from the command line as root user, it doesn't do anything at
> > all when called from Exim. No record is updated. No errors.
> > Nothing. The Mysql user Exim uses does have Exec permission.
> > And Exim is passing the correct data as can be seen because
> > that data is also being sent to logs.
> One more note: exim -bh test shows this success is running the call.
If it works under "exim -bh" but not under normal use, and you see the
query going in normal use, then there is probably some kind of
permissions problem. You've looked at the error log, so I'll go with
permissions.
Note that I had:
GRANT EXECUTE ON FUNCTION trim_domain(varchar) TO PUBLIC;
A websearch for [mysql call permissions] returns weblog items noting
that MySQL does indeed prevent non-owners from calling procedures, by
default.
Searching for [mysql GRANT EXECUTE] returns:
http://dev.mysql.com/doc/refman/5.0/en/grant.html
So you appear to need:
GRANT EXECUTE ON PROCEDURE db.ehlo TO 'exim'@'clienthost';
where clienthost is whatever the DB sees as the hostname that Exim is
connecting from (localhost?).
Regards,
-Phil