1、安装MySQL
sudo apt install mysql-server mysql-client
启动MySQL服务:
sudo service mysql start
查看服务是否启动:返回有“mysqld”的字样
sudo netstat -tap | grep mysql
2、配置数据库
以root身份进入服务器:
sudo mysql -u root
现在终端进入MySQL的命令状态。引导符:mysql>
创建数据库:
CREATE DATABASE trainning;
导入数据库:
USE trainning;
SOURCE path/name.sql;
修改数据库权限:
grant all on trainning.* to yourname@localhost identified by 'yourpassword';
3、链接MySQL
在qt代码中: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("trainning");
db.setUserName("yourname");
db.setPassword("yourassword");
db.setPort(3306);
if (!db.open())
链接数据库出错:QMYSQL Driver Not Loaded,只有QSQLITE驱动。
分析是由于没有MySQL的驱动,查找libqsqlmysql.so,只有qt4下的plugin中的sqldrivers中有。
解决方法有二:一下载源码编译,二下载编译好的。可以使用apt命令安装:
sudo apt install libqt5sql5-mysql
由于linux使用root链接数据库时需要root权限,而一般程序运行时是非root的。因此一定要配置成一般用户:因此需要在配置数据库的时候设置用户权限,而在链接的时候使用该用户去链接数据库和访问数据库。
4、访问数据库
QSqlQuery q;
bool bqr = q.exec("SELECT student.num FROM student");
此时如果没有数据库的访问权限,则返回时错误的(false)。