ubuntu22.04 安装ODBC驱动-达梦-mysql

发布于:2025-04-15 ⋅ 阅读:(31) ⋅ 点赞:(0)

现在用非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();
}







 


网站公告

今日签到

点亮在社区的每一天
去签到