这是安装mysql时的情形:
1.软件中心:输入mysql 安装mysql服务端和客户端,然后再安装mysql 管理员
2.打开mysql管理员
3.点击connect
3.qust@qust-K42JZ:~$ mysql -u root -p //以root身份登录
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.1.62-0ubuntu0.11.10.1 (Ubuntu)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> create database test;
mysql> grant all privileges on *.* to qust@localhost identified by '123';//为qust 授权
Query OK, 0 rows affected (0.02 sec)
mysql> quit;
Bye
qust@qust-K42JZ:~$
输入mysql 语句时不要忘记在句末加";"
测试源程序.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QtSql>
#include <iostream>
using namespace std;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setUserName("qust");
db.setPassword("123");
if (!db.open())
qDebug() << "Failed to connect to root mysql admin";
else
std::cout<<"succeed!"<<std::endl;
QSqlQuery query;
query.exec("create table hello(id bigint not null auto_increment,name varchar(255),age bigint,primary key (id))");
query.exec("insert into hello(name, age) values('xiaoxi', 18)");
query.exec("insert into hello(name, age) values('xiaonan', 19)");
query.exec("insert into hello(name, age) values('xiaobei', 20)");
query.exec("insert into hello(name, age) values('xiaodong', 21)");
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("select * from hello");
model->setHeaderData(0, Qt::Horizontal, "id");
model->setHeaderData(1, Qt::Horizontal, "name");
model->setHeaderData(2, Qt::Horizontal, "age");
ui->tableView->setWindowTitle("QSqlQueryModel");
ui->tableView->setModel(model);
db.close();
}
MainWindow::~MainWindow()
{
delete ui;
}
运行结果:
在Qt 5.2.1中Qt已经自带MySQL的驱动,但还会发生找不到驱动的提示,这是你需要将MySQL安装目录下的libmysql.dll拷贝到Qt安装目录下的bin目录中即可。