Using Qt4.5.2 in Suse 11.1

I am trying to create a mysql database with the following code:

QSqlDatabase maindb = QSqlDatabase::addDatabase("QMYSQL", "main");
maindb.setDatabaseName ("mysql");
maindb.setHostName (url.host());
maindb.setUserName (url.user());
maindb.setPassword (url.pass());
if (!maindb.open()) {
qFatal("opening maindb");
}
QSqlQuery qm(maindb);
QString qs = QString("CREATE DATABASE %1;").arg(dbName);
qm.prepare (qs);
if (!qm.exec()) {
buildError (<snip>);
rc = 1;
}
maindb.close();
QSqlDatabase::removeDatabase (maindb.connectionName());


The exec() call fails with no useful information in the returned QSqlError. The mysql log shows only the following:

090819 14:34:20 8 Connect tonyb@localhost on mysql
8 Init DB mysql
8 Query SET NAMES utf8
8 Quit

i.e. the create database statement never appears.

This code, with the same userid, works okay in Qt3, so it's not a permissions problem. The log there shows

18 Connect tonyb@localhost on mysql
18 Init DB mysql
18 Query CREATE DATABASE KMyMoney
18 Quit

Any ideas? Workarounds?