安装完qt5后,自动安装了7个驱动程序与各种数据库的应用编程接口进行通信。
QSQLITE
QMYSQL
QMYSQL3
QODBC
QODBC3
QPSQL
QPSQL7
通过以下程序可以测试qt5已经安装的驱动测试程序
QStringList drivers = QSqlDatabase::drivers();
QString result="drivers list:";
foreach(QString driver, drivers)
result+= "\n" +driver;
连接数据库进行测试
QString result="connection information:";
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("water");
db.setUserName("root");
db.setPassword("root");
if(!db.open())
{
QMessageBox::critical(0,QObject::tr("Database Connection Error"),db.lastError().text());
result+="\nDatabase Connection Error\n"+db.lastError().text();
}
else
{
result+="Database Connection Successful";
}
当出现
Access denied for user 'root'@'localhost' (using password: YES) QMYSQL: Unable to connect
可以参考以下方式进行解决
http://www.cnblogs.com/gogly/p/3293328.html
安装Mysql后利用SQLyogEnt启动是提示“access denied for user 'root'@'localhost'(using password:YES)”,开始我还为是因为是密码问题,后来上网查了查才知道root权限问题,我想可能是因为win7系统我在安装时没用以管理员身份进行安装,所以root角色没有权限,从网上找了一个解决方案解决了,在这里记录一下:
1. 管理员登陆系统,停止mysql服务或者结束mysqld-nt进程;
2. 进入命令行,来到mysql的安装目录.假设安装目录为 d:\mysql\ , CMD进入命令行;
3. 运行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqld -nt --skip-grant-tables启动mysql,关闭权限的检查;
4. 运行 D:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -u root flush-privileges password
后提示newpassword" 重设root密码;
5. 重新启动mysql服务;