现在用非root用户
1ODBC+mySql+达梦+SqlServer
1.1ODBC
https://eco.dameng.com/document/dm/zh-cn/start/C_C++_development.html#%E9%80%9A%E8%BF%87%20ODBC%20%E8%BF%9E%E6%8E%A5%E6%95%B0%E6%8D%AE%E5%BA%93
1.ODBC安装
1.1下载文件 并解压
tar -zxvf unixODBC-2.3.12.tar.gz -C /home/tangcj/Downloads/ODBC
1.2.编译安装
cd unixODBC-2.3.12
./configure --prefix=/usr/local/unixODBC --sysconfdir=/etc # 配置unixODBC的安装路径为/usr/local/unixODBC
make && make install
1.3编译后查找配置文件位置
odbcinst -j
在麒麟系统下可以,但在ubuntu下 odbcinst -j 说没有安装
1.3 验证ODBC是否安装成功?
odbc_config --version ubuntu下没有这个命令
odbcinst -j
sudo apt update
sudo apt install unixodbc unixodbc-dev odbcinst
1.2.达梦
https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html
1.安装DM
unzip [选项] 压缩文件名 -d 解压目录
unzip dm8_20250117_x86_rh6_64.zip -d /opt
mount -o loop dm8_20250117_x86_rh6_64.iso /mnt
验证安装
2.让环境认识ODBC 配置环境变量
vim ~/.bashrc
export ODBCDM_HOME=/usr/local/unixODBC
export PATH=$ODBCDM_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ODBCDM_HOME/lib:$LD_LIBRARY_PATH
source ~/.bashrc
3.ODBC配置DM数据库驱动。
3.1 /etc/odbcinst.ini
[DM8 ODBC DRIVER]
Description = ODBC DRIVER FOR DM8
Driver = /home/tangcj/dmdbms/bin/libdodbc.so
3.2 /etc/odbc.ini
[dm8]
Description = DM ODBC DSN
Driver = DM8 ODBC DRIVER
SERVER = 192.168.9.97
UID = SYSDBA
PWD = Int@4001093999
TCP_PORT = 5236
3.3 验证:用安装数据库的用户名
su - tangcj
isql dm8
1.3.mysql
1.安装
sudo apt-get install libmyodbc
sudo apt install mysql-server -y
2.MySQL 服务并使其在系统启动时自动启动
sudo systemctl start mysql
sudo systemctl enable mysql
3. 配置一下 安全设置
sudo mysql_secure_installation
y
4.查看状态
systemctl status mysql.service
CTRL+C结束
5.验证:
sudo mysql -u root -p
输入root用户密码 INT@4001093999
6.设置远程登陆
use mysql;
select host,user from user;
update user set host='%' where user='root';
select host,user from user; #不能少,否则会出现执行错误
alter user 'root'@'%' identified with mysql_native_password by 'INT@4001093999';
select host,user from user;
flush privileges;
exit;
查看/etc/mysql/mysql.conf.d/mysqld.cnf
修改绑定地址:由127.0.0.1 到0.0.0.0
重启服务
systemctl restart mysql
systemctl status mysql
apt-get install net-tools
验证服务:
telnet localhost 3306
telnet 192.168.9.25 3306
复制文件libsqlmysql.so 到插件目录下
=/home/tangcj/Qt5.12.1/5.12.1/gcc_64/plugins/sqldrivers/
2.配置ODBC 驱动
/etc/odbcinst.ini
[MySQL]
Description=MySQL ODBC 8.0 Driver
Driver=/usr/lib/x86_64-linux-gnu/odbc/libmyodbc8a.so
3.配置 ODBC 数据源
/etc/odbc.ini
[MySQL]
Description=MySQL DSN
Driver=MySQL
Server=your_server_address
Port=3306
Database=your_database_name
User=your_username
Password=your_password
4.验证连接
isql MySQL your_username your_password -v
1.4 sqlserver
系统安装
Ubuntu:在 Linux 上安装 SQL Server - SQL Server | Microsoft Learn
#1.验证是否安装好
systemctl status mssql-server --no-pager
#2.打开防火墙和1433端口
sudo ufw status #查看防火墙状态
sudo ufw enable #开启防火墙
sudo ufw disable #关闭防火墙
sudo ufw reload #重启防火墙
sudo ufw allow 1433/tcp #开放规定协议的指定端口
sudo ufw delete allow 8000/tcp #关闭8000端口的tcp协议
批量开放规定协议的指定端口(开放1-65535端口的tcp协议,需重启防火墙生效)
sudo ufw allow 1:65535/tcp
批量关闭规定协议的指定端口(关闭1-65535端口的tcp协议,需重启防火墙生效)
sudo ufw delete allow 1:65535/tcp
sqlcmd -S 192.168.9.25 -U sa -P 'INT@4001093999' -C
sqlcmd:未找到命令
2.QT
chmod a+x qt-opensource-linux-x64-5.12.12.run
./qt-opensource-linux-x64-5.12.12.run
1.安装包
sudo apt-get install build-essential #1.基础编译工具
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev #2.openGL
sudo apt-get install libx11-dev libxext-dev libxt-dev libxi-dev libxrandr-dev libxrender-dev libgl-dev #3.X11 和窗口系统依赖
sudo apt install libfontconfig1-dev libfreetype-dev #4.字体和文本渲染依赖
sudo apt install libpulse-dev libasound2-dev #5.多媒体依赖
sudo apt install libmysqlclient-dev #6.数据库依赖
sudo apt install libssl-dev #7.SSL 和网络依赖
sudo apt-get install libxcb-cursor0
sudo apt-get install libtinfo5
sudo apt-get install make-guile
sudo snap install cmake --classic
2.修改环境变量
vim ~/.bashrc
export QTDIR=/home/tangcj/Qt5.12.12/5.12.12/gcc_64 # Qt 主程序路径
export PATH=$QTDIR/bin:$PATH
export QT_PLUGIN_PATH=/home/tangcj/Qt5.12.12/5.12.12/gcc_64/plugins/sqldrivers/ # Qt 插件路径(如数据库驱动)
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
# 动态库路径(解决运行时依赖缺失问题)
source ~/.bashrc
验证
qmake -v
echo $PATH # 查看 Qt 主程序路径是否包含在 PATH 中
echo $QT_PLUGIN_PATH # 确认插件路径正确
尽量把.so放在 usr/lib/x86_64-linux-gnu,QTCreator用的是系统环境变量。
3.程序测试
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtSql/QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug()<<QSqlDatabase::drivers();
// 创建数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost"); // MySQL 主机名
db.setDatabaseName("testdb"); // 数据库名
db.setUserName("root"); // 用户名
db.setPassword("123@1234"); // 密码
// 尝试连接
if (!db.open()) {
qDebug() << "Failed to connect to database:" << db.lastError().text();
//return -1;
}
qDebug() << "Connected to MySQL database!";
// 执行一个简单的查询
QSqlQuery query;
if (query.exec("SELECT VERSION()")) {
if (query.next()) {
qDebug() << "MySQL Version:" << query.value(0).toString();
}
} else {
qDebug() << "Query failed:" << query.lastError().text();
}
// 关闭数据库连接
db.close();
}