QT连接阿里云服务器的MySql数据库详细操作

前言:

QT版本

QT连接阿里云服务器的MySql数据库详细操作_第1张图片

 云服务器数据库版本

QT连接阿里云服务器的MySql数据库详细操作_第2张图片

 1.进入数据库

mysql -u root -p

创建一个用户

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

username更改为你的命名password改成你的记得住的密码

查看用户

SELECT user,host FROM mysql.user;

QT连接阿里云服务器的MySql数据库详细操作_第3张图片

其中xza这个用户是我们刚刚创建的,我们应该把host那栏的localhost改成%

这个用意就是可以让我们远程访问数据库

# 使用数据库
use mysql;
# 为特定用户(xza)修改host
update user set host='%' where user='xza';

QT连接阿里云服务器的MySql数据库详细操作_第4张图片

 成功后就会变成这样

QT连接阿里云服务器的MySql数据库详细操作_第5张图片

 接着进行用户赋权

GRANT ALL PRIVILEGES ON QtSql.* TO 'xza'@'%' WITH GRANT OPTION;

 

其中第一处需要改成你的数据库名,第二处改成你的用户名

 2.开放指定端口

查看你的MySQL是否对外开放

netstat -an | grep 3306

 说明MySQL端口目前只监听本地连接127.0.0.1

下面进行修改配置文件

cd /etc/mysql/mysql.conf.d

vim mysqld.cnf

QT连接阿里云服务器的MySql数据库详细操作_第6张图片 

vim指令:

切换至英文输入法,输入 i 进入插入模式

点击 Esc 按键推出插入模式

输入:wq 按enter就可以保存了

 QT连接阿里云服务器的MySql数据库详细操作_第7张图片

 QT连接阿里云服务器的MySql数据库详细操作_第8张图片

 然后重启MySQL

service mysql restart

显示为下图就可以了 

开放3306端口

sudo ufw allow 3306

 3.连接代码

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include 
#include 
#include 

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent),
      ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");

    db.setHostName("IP");
    db.setPort(3306);
    db.setDatabaseName("表名");
    db.setUserName("username");
    db.setPassword("password");
    bool ok = db.open();
    if (ok)
    {
       // QMessageBox::information(this, "infor", "success");
         qDebug()<<"success";
    }
    else
    {
        QMessageBox::information(this, "警告!", "DataBase Open Failed,Check whether there is a database or whether the parameters are correct!!!");
        qDebug()<<"error open database because"<setQuery(strSelectData);

    ui->tableView->setModel(tableModel);
}

void MainWindow::on_dis_clicked()
{
    //查询所有并放入表中
   SelectAllPushTableData();

   //初始化表格 格式
   ui->tableView->setColumnWidth(0,80);
   ui->tableView->setColumnWidth(1,150);
   ui->tableView->setColumnWidth(2,70);
   ui->tableView->setColumnWidth(3,70);
   ui->tableView->setColumnWidth(4,70);
   ui->tableView->setColumnWidth(5,70);
   ui->tableView->setColumnWidth(6,70);
   ui->tableView->setColumnWidth(7,70);

   setFixedSize(750,650);

   setWindowTitle("——数据库管理平台——");
}
//清空表
bool MainWindow::clearDBTable()
{
    QSqlQuery query;
    QString strClearDB = "delete from qtdata";
    query.prepare(strClearDB);
    if(!query.exec())
    {
        qDebug()<

QT连接阿里云服务器的MySql数据库详细操作_第9张图片

 QT连接阿里云服务器的MySql数据库详细操作_第10张图片

 云服务器数据库显示QT连接阿里云服务器的MySql数据库详细操作_第11张图片

 参考文档:(67条消息) 如何解决远程连接mysql出现Can’t connect to MySQL server on (111 “Connection refused”)的问题_半砖的博客-CSDN博客icon-default.png?t=N4P3https://blog.csdn.net/hexf9632/article/details/103890046#:~:text=%E6%89%A7%E8%A1%8C%E8%B5%8B%E6%9D%83%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9A%20MySQL%3E%20GRANT%20ALL%20PRIVILEGES%20ON%20%2A.%2A%20TO,%27password%27%20WITH%20GRANT%20OPTION%3B%20MySQL%3E%20flush%20privileges%3B%201

 

你可能感兴趣的:(Qt,数据库,qt,Mysql,数据库,阿里云服务器)