qt5 与 mysql 的连接

安装完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服务;

qt5 与 mysql 的连接_第1张图片

qt5 与 mysql 的连接_第2张图片

你可能感兴趣的:(C++程序设计--原创+转载)