qt平台 mysql数据库的选择,
如果是本地主机作为服务器.
#if 1
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//数据库连接所需要设置的信息
db.setHostName("127.0.0.1");//
db.setDatabaseName("stu_sys");//数据库名字
db.setUserName("root");//数据库用户名
db.setPassword("root");//数据库密码
db.setPort(3306);//数据库端口号
//连接数据库
bool ok=db.open();
if(ok)
{
qDebug()<<"success";
}
else {
qDebug()<<"fail!";
}
#endif
但注意,mysql数据库是非文件型数据库。也就是你没法找到他的数据库文件进行向sqllite 那样直接用数据库文件的相对路径直接使用数据库(后面有)
请问,qt连接MySQL数据库用的setdatabaseName怎么使用mysql数据库名字的相对路径( 找不到mysql数据库文件相对的路径 )
mysql只需要知道 数据库名称,用户名,密码,就行,不需要知道库文件在哪。mysql是一个服务,它隔离了文件与用户请求。
即使是你访问本机,也只能用localhost 或127.0.0.1通过网络接口,它只有网络接口
那别的电脑要使用怎么办
我这个数据库不在他电脑上
mysql数据库怎么迁移到另一台电脑
导出成sql文件,另一台电脑导入
本地使用的话不装数据库,就换成sqllite了
如果是云服务器或者云数据库
可以去申请平台网站有
https://wsfdb.cn/
https://www.db4free.net
http://sqlpub.com/
使用方法(以qt上使用mysql为例)
mysql -h 主机IP -u 用户名 -p密码
这里的主机ip可以是域名,域名会解析为ip
以 http://sqlpub.com/ 上申请到的数据库为例
申请成功
数据库名称:stu_sys
数据库用户:rootroot
数据库密码:b7775733c7d1b39d
数据库地址:mysql.sqlpub.com:3306
注册邮箱:2278135632@qq.com
那我们在控制台上的代码就是
C:\Users\X-SHELL-GOOGLE>mysql -h mysql.sqlpub.com -u rootroot -p
Enter password: ****************
我们也可以在qt上使用
#if 0
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//数据库连接所需要设置的信息
db.setHostName("mysql.sqlpub.com");//填申请到的域名,自动解析ip
db.setDatabaseName("stu_sys");//数据库名字
db.setUserName("rootroot");//数据库用户名
db.setPassword("b7775733c7d1b39d");//数据库密码
db.setPort(3306);//数据库端口号
//连接数据库
bool ok=db.open();
if(ok)
{
qDebug()<<"success";
}
else {
qDebug()<<"fail!";
}
#endif
如果你不想这么麻烦 可以试试 sqllite , sqllite 在qt上的代码是
//这是sqllite的操作语句
#if 0
//不存在相关驱动就加载 《mysql》
if (QSqlDatabase::drivers().isEmpty())
QMessageBox::information(nullptr, tr("No database drivers found"),
tr("This demo requires at least one Qt database driver. "
"Please check the documentation how to build the "
"Qt SQL plugins."));
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("C:\\Users\\X-SHELL-GOOGLE\\Desktop\\data.db");
if (!db.open())
QMessageBox::warning(nullptr, tr("Unable to open database"), tr("An error occurred while "));
//执行sql语句
QSqlQuery q( "",db);
q.exec("insert into student values(NULL, '张三', 12, 3, 2, 1, 15940224444, 'asdzhang')");
qDebug()<<"testfil";
#endif