Installation

Edits to Installation Manual

Edits to Installation Manual

by Andrew Parker -
Number of replies: 3
Perhaps it should be noted that the mysql password for webworkWrite ought not to include characters that cause problems when logging in from the command line... This was a major headache for me when I randomly generated a passwords that contained '$' and ';'. What other characters need to be avoided?
In reply to Andrew Parker

Re: Edits to Installation Manual

by Jason Aubrey -
Hi Andrew,

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
In reply to Jason Aubrey

Re: Edits to Installation Manual

by Andrew Parker -

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?

In reply to Andrew Parker

Re: Edits to Installation Manual

by Jason Aubrey -
I'm not 100% sure, but I think it will work if you just single quote the password in global.conf. Since $database_password is essentially eval'd into existence with the rest of the data structures in global.conf, if you have something like
$database_password = "foo$bar";
it's probably trying to interpolate that $bar and coming up with
$dabase_password = "foo";

Jason