Qt5.12.3远程连接MySQL数据库

标题Qt5.12.3远程连接MySQL数据库

1.下载MySQL
官网下载地址:MySQL :: Begin Your Download ,注意选择操作系统,此文档以windows操作系统为例。 如果是其他系统,请在MySQL :: Download MySQL Installer 里面选择自己的操作系统下载。
Qt5.12.3远程连接MySQL数据库_第1张图片
2.安装MySQL
下载完成后,双击进行安装。
安装过程:

  • 选择自定义安装,点击下一步

Qt5.12.3远程连接MySQL数据库_第2张图片

  • 避免下次安装其他组件麻烦,我们把所有的组件全部安装。先在左边选择组件,然后在点击中间的绿色箭头,表示我们要安装这个组件。

Qt5.12.3远程连接MySQL数据库_第3张图片

  • 选择安装的组件,修改安装的位置,默认安装路径是C盘,点击下一步

Qt5.12.3远程连接MySQL数据库_第4张图片

  • 选择执行,等待安装完成,点击下一步

Qt5.12.3远程连接MySQL数据库_第5张图片

  • 设置一些选项,如果下一步next不可以点击的话,是因为端口有冲突,重新改一个可用的端口即可,我这里设置为3307,设置完成后继续下一步nextQt5.12.3远程连接MySQL数据库_第6张图片
  • 默认使用密码方式,点击下一步next

Qt5.12.3远程连接MySQL数据库_第7张图片

  • 填入密码,点击下一步

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 保持默认,继续点击下一步

Qt5.12.3远程连接MySQL数据库_第8张图片

  • 点击执行,结束后点击完成、下一步
  • 保持默认,点击完成、下一步

Qt5.12.3远程连接MySQL数据库_第9张图片

  • 输入之前我们设置的密码,并check一下,若密码验证通过,则出现一个绿色箭头,继续下一步

Qt5.12.3远程连接MySQL数据库_第10张图片

  • 点击执行,完成后点击finish,后续默认下一步
  • 最后安装完成后会出现MySQL客户端和MySQL workbench

Qt5.12.3远程连接MySQL数据库_第11张图片
Qt5.12.3远程连接MySQL数据库_第12张图片

  • 至此,MySQL安装完成。
  1. 准备MySQL的Qt连接驱动程序

1.下载驱动程序
在网站在以下网址中下载和当前Qt版本对应的驱动,根据自己的Qt版本下载对应的驱动
Releases · thecodemonkey86/qt_mysql_driver · GitHub
此处下载Qt5.12.3版本驱动
MinGW编译器64bit
https://github.com/thecodemonkey86/qt_mysql_driver/files/5896714/qsqlmysql.dll_Qt_SQL_driver_5.12.3_MinGW_7.3_64-Bit.zip
MSVC编译器64bit
https://github.com/thecodemonkey86/qt_mysql_driver/files/5896715/qsqlmysql.dll_Qt_SQL_driver_5.12.3_MSVC2017_64-Bit.zip
2.解压安装

  • 把下载的文件解压,得到一个文件夹

Qt5.12.3远程连接MySQL数据库_第13张图片

  • 将文件夹中的libmysql.dll拷贝到qt 对应编译器的bin目录下D:\IDE\Qt\Qt5.12.3\5.12.3\mingw73_64\bin
  • 将sqldrivers文件夹中文件qsqlmysqld.dll、qsqlmysql.dll拷贝到对应编译器plugins/sqldrivers目录下D:\IDE\Qt\Qt5.12.3\5.12.3\mingw73_64\plugins\sqldrivers
  1. 测试MySQL与Qt的连接
  • 在Qt中新建工程,在MainWindow.cpp中进行连接测试。(此处的数据库是安装MySQL自带的数据库。
QSqlDatabase database = QSqlDatabase::addDatabase("QMYSQL");
database.setHostName("127.0.0.1");
database.setPort(3307);
database.setUserName("root");
database.setPassword("root");
database.setDatabaseName("mysql");

if(! database.open()) {
    qDebug() << (u8"连接MySQL失败: "+database.lastError().text());
} else {
    qDebug() << (u8"连接MySQL成功: "+database.databaseName());
}
  1. 连接远程数据库
  • 在远程服务器中登录数据库
mysql -u root -p
  • 然后新建一个用于远程登录的 MySQL 账号,这里的[username]换成你的用户名,「password」换成你的密码,如果MySQL 设置为严格密码的话,需要「数字+英文大小写+符号」
CREATE USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
  • 然后运行 FLUSH PRIVILEGES 刷新数据库
 FLUSH PRIVILEGES 
  • 然后修改 MySQL 配置文件

首先打开 mysqld.cnf 配置文件。

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind - address 这一行,修改为0.0.0.0,如下图所示
Qt5.12.3远程连接MySQL数据库_第14张图片

  • 默认情况下, bind - address 的值为 127.0.0.1 ,所以只能监听本地连接。我们需要将这个值改为远程连接 ip 可访问,可使用通配符 ip 地址 *, ::, 0.0.0.0 ,当然也可以是单独的固定 ip,这样就仅允许指定 ip 连接,更加安全
  • 提示: 在某些 MySQL 版本的配置文件中,没有 bind - address 这一行,这种情况下,在合适的位置加上就可以了。更改后,保存并退出编辑器。
  • 然后重启 MySQL 服务,使刚刚编辑的 mysqld.cnf 文件生效:
sudo systemctl restart mysql
  • 至此完成了远程服务器中MySQL数据库的配置,此时可以修改Qt项目中的IP地址和用户名、密码、数据库名称,进行远程数据库的连接了。

你可能感兴趣的:(Qt,数据库,qt,mysql)