I think the problem here might be that your shell thinks $ starts a variable name. My guess is that you could avoid problems with that (and other shell-meaningful symbols) by single quoting your password, e.g.
$ mysql -u webworkWrite -p '$$$$$$$'
or entering your password at the mysql password prompt (which is handled by mysql, not your shell), e.g.
$ mysql -u webworkWrite
password: ******
Jason
The problem was that webworkWrite, when called upon by Apache::Webwork, doesn't use such measures... Creating great confusion for me, since I was able to login and verify that webworkWrite did indeed have access to mysql:webwork via
$ mysql -u webworkWrite -p webwork
and then entering the password (thereby avoiding the shell).
It wasn't until I tried to login from the shell that I discovered the problem was with the password itself. The shell was reading ';' in my password as endline. And it didn't like '$' either, FWIW. I changed the password to strictly alphanumeric characters, and the errors cleared up.
Perhaps the code in WebWork could be adjusted to avoid such complications with these characters? Or are you suggesting $database_password="'$;$;$;$;'" be double-quoted and single-quoted?
$database_password = "foo$bar";
it's probably trying to interpolate that $bar and coming up with
$dabase_password = "foo";
Jason