因开发需要,用Qt开发。需要在本地建立一个MySql数据库,在本地和在远程电脑也能访问这个Mysql数据库。
首先安装Mysql数据库,我装的是MySQL Community Server 8.0.27 版,安装的是developer Machine这个选项,最后用户名是root,密码是123456,参见链接:https://blog.csdn.net/bobo553443/article/details/81383194【超详细MySQL安装及基本使用教程】;
接着创建数据库xxxdatabase,然后在里面建一个用户表usertable(字段{id,name,password}),
往用户表里插入一个数据 insert xxxdatabase.usertable value(1,‘dh’,‘duan00’);数据库这个表如下图
接着在本地编写qt+mysql程序连接这个数据库,参见链接:Qt连接MySQL数据库最详细的教程【https://blog.csdn.net/joey_ro/article/details/105411135,这个主要是解决QMYSQL driver not loaded】
//参数strIp为数据库所在地址
void connectMysqlServer(QString strIp)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL","connectMySQL");
db.setHostName(strIp);//这里为数据库所在网络地址
db.setPort(3306);
db.setDatabaseName("数据库名");
db.setUserName("用户名");
db.setPassword("密码");
bool ok = db.open();
if (ok){
QMessageBox::information(this, "infor", "success");
}
else {
QMessageBox::information(this, "infor", "open failed");
qDebug()<<"error open database because"<<db.lastError().text();
}
}
将安装的mysql的数据库,即C:/Program Files/MySQL/MySQL Server8.0/lib目录下的libmysql.lib和libmysql.dll,拷贝到放到C:/Qt/Qt5.12.1/5.12.1/mingw73_64/bin/目录里去【因为我的Qt编译时采用的Mingw 64-bit,故是放在mingw73_64/bin/里去】;如果不进行,会提示如下图片
放大错误提示
编写完程序后,如果提示需要发布程序,用windeployqt xxx.exe 发布完你生成程序依赖的库,(此外,还需要把安装的mysql的库libmysql.dll拷贝到这个发布程序所在的目录里,
还需要把mysql-connector-c+±8.0.27-winx64.msi安装出来的c:/program files/mysql/mysql connector c++8.0/lib64这个目录里的文件除了vs14文件夹以外的东西都要拷贝到发布程序的目录里才行),如下两图
综上,就把程序的弄完了。
接着还需要在服务器端(即mysql数据库所在电脑上),给mysql数据库开通一个允许远程访问的链接。
如果没有开通这个链接的时候会提示【Failed to Connectto MySQL at xxx:xx with user root,那是因为 默认设置下, MySQL只允许localhost以root身份登录】参见链接:https://blog.csdn.net/littlehaes/article/details/104845118【Failed to Connectto MySQL at xxx:xx with user root】
1.打开mysql自带的工具MySQL 8.x Command Line Client,命令行工具:
2.在其中输入mysql -u root -p;
3.接着输入root这个用户的密码
4.再输入use mysql;
后面再依次输入如下指令
5. show tables;
6. select Host,User from user;【注意这个里面的Host ,User头字母需要大写】
7. update user set host = ‘%’ where user =‘root’;
8. flush privileges;
还要在数据库上设置开一个新链接,如下图:
此外,还需要在安装MySQL数据的电脑上,添加防火墙允许规则,允许3306端口,参见链接:https://www.cnblogs.com/dyha/p/13850823.html
【win10下如何让别人访问自己的数据库,开放3306端口】
这样在服务器端要做的事情就弄完了。接下来要做远程其他电脑要做的操作了。
如果程序发布到其他空白电脑,首先看看运行,是否能正常链接上本地数据库。如果不行需要安装 vs_redist.x64和mysql-connector-c++8.0.27-winx64.msi(这个依赖于前者)。
我的到这里,在其他电脑上也能正常访问我本地的数据库,我试验了5台电脑,都能正常访问。
最后成功的画面如下: