安装MySQL

sudo apt-get install mysql-server

这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。

配置MySQL

注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来:

默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:

$mysql -u root

在这里之所以用-u root是因为我现在是一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作, 根本没必要进入根用户模式,只有在设置时才有这种可能。

进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "1";

要再登录,Terminal:mysql -u root -p

提示输入密码,输入1,回车;

create database Enroll;//创建数据库

use Enroll;//使用数据库

CREATE TABLE `Student` (          //建表
  `Sno` char(9) NOT NULL,
  `Sname` char(20) DEFAULT NULL,
  `Ssex` char(1) DEFAULT NULL,
  `Sage` int(11) DEFAULT NULL,
  `Scome` char(20) DEFAULT NULL,
  `classNo` char(5) NOT NULL,
  UNIQUE KEY `Sno` (`Sno`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

再用insert插入几组数据。

qt中新建项目

#include <QtSql>    #include <QMessageBox>    #include <QTextStream>         QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("Enroll");
db.setUserName("root");
db.setPassword("1");
if(!db.open())
{
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection."
), QMessageBox::Cancel);
return false;

}
// test the connection
QSqlQuery query;

query.exec("select classNo from Class");
qDebug()<<"query.size():"<<query.size();
while(query.next())
{
qDebug()<<"query.value(0)"<<query.value(0).toString();
classes.append(query.value(0).toString());

}
qDebug()<<"classes.size()"<<classes.size();
query.exec("SELECT a FROM Student");
qDebug() <<query.size();
while(query.next())
{
QString id = query.value(0).toString();
QString type = query.value(1).toString();
QString data = query.value(2).toString();
qDebug() << id << ", " << type << ", " << data <<endl;
qDebug() <<query.size();
}
简单说明一下,qt4.7直接带了mysql的驱动,像上面那样声明一下就行了。还有一定要在.pro里写上qt+=sql。