Coding-QT-连接云端Mysql配置

进入数据库

1
mysql -u root -p

创建新用户

1
CREATE USER 'yyy'@'localhost' IDENTIFIED BY 'password';

查看用户

1
SELECT yyy,host FROM mysql.user;

使用数据库, 为特定用户(yyy)修改host

1
2
3
use mysql;

update user set host='%' where user='yyy';

接着进行用户赋权

1
2
GRANT ALL PRIVILEGES ON test_db.* TO 'yyy'@'%' WITH GRANT OPTION;
# test_db是数据库名

查看MySQL是否对外开放

1
netstat -an | grep 3306

如果没有要修改配置文件

1
2
3
4
cd /etc/mysql/mysql.conf.d

vim mysqld.cnf
# 注释掉 blind-address 和 myswlx-blind-adress

然后重启

1
service mysql restart

开放3306端口

1
sudo ufw allow 3306

QT连接代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "mainwindow.h"

#include <QApplication>
#include <QLocale>
#include <QTranslator>

#include <QCoreApplication>
#include <QDebug>
#include <QPluginLoader>
#include <QSql>
#include <QSqlDatabase>

#include<QSqlQuery>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

//本地
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost"); // 本地数据库 远程DB是:ipaddress
db.setPort(3306); // 设置端口号
db.setDatabaseName("test_db"); // 使用的数据库 sql = use '数据库名'
db.setUserName("yyy");
db.setPassword("passwd");

if(db.open()){
qDebug()<<"成功";
}else{
qDebug()<<"失败";
}

QTranslator translator;
const QStringList uiLanguages = QLocale::system().uiLanguages();
for (const QString &locale : uiLanguages) {
const QString baseName = "main_" + QLocale(locale).name();
if (translator.load(":/i18n/" + baseName)) {
a.installTranslator(&translator);
break;
}
}
MainWindow w;
w.show();
return a.exec();
}