Generating a new Grails app: getting MySQL connection errors

When I ‘generate-all’ on a new app configured to use MySQL in the ApplicationDataSource.groovy file, I am getting some obscure MySQL errors about cannot connect to my server, even though MySQL is running and I can connect with the mysql command line client:

<code>
   [groovy] Caused by: java.sql.SQLException: Communication failure during hands
hake. Is there a server running on localhost:3306?
   [groovy]     at com.mysql.jdbc.MysqlIO.init(Unknown Source)
   [groovy]     at com.mysql.jdbc.Connection.connectionInit(Unknown Source)
</code>

From what I’ve discovered Googling around, this error is because an older MySQL Connector jar is being used to make the connection. I am runing MySQL 4.1 with Connector 3.1.12. Here is a post about the connector jar causing this issue. The solution is to either use the latest Connector jar for MySQL, which I am already doing, or to change the password for the user so that it is stored using the older encryption method, using old_password('password') instead of password('password')

The strage thing is though, that I have placed the latest connector jar into the lib directory in my generated app (I’ve also tried grails/lib even though I’m sure it shouldn’t go there), but it is obviously not using this jar – if I remove it and run again I get the same issue, so it is picking up an older jar on my machine somewhere. – I’m about to do a search and see what turns up (there is nothing in my classpath defined in my Windows env vars).

Update: ok – from doing a file search I solved my problem. I had earlier tried to use an older version of the mysql-connector by mistake before trying the latest version. I had ended up with both versions being beuilt into the web app and the older one was being picked up first. After deleting everything under temp and rebuilding, this solved my problem.

Common Linux Commands

df shows free and used disk space
top shows memory usage – updates in real time
ps Process Status – lists running processes
ps -ef show system processes
find . -name FILENAME -print locate a file named FILENAME and show it’s location
grep -r “pattern” * search through all files and subdirectories from the current directory for the given pattern and print matches
uname -a displays the current kernel version
lsb_release -a displays Ubuntu installation version
fdisk -l lists partition info

Ubuntu/Debian Package Management

Install an app: sudo apt-get install name

Remove: sudo apt-get remove name (‘apt-get remove –purge name’ to remove all config files also)

List installed packages: sudo dpkg –list | more

RPM Commands (Red Hat/Fedora and derivatives)

rpm -ivh PACKAGE installs a new RPM
rpm -e PACKAGE uninstalls an RPM
rpm -qi PACKAGE Queries that a package is unstalled and displays information about it