当我尝试在 Navicat(Flatpak 版本)创建 SQL Server 接时,出现“需要 SQL Server ODBC 驱动程序。”的报错消息,这是什么意思,我该怎么办?
更新于
适用操作系统:Linux
适用 Navicat 产品:Navicat Data Modeler(Flatpak 版本)
若需要与Microsoft SQL Server 实例建立直接连接,需要使用微软的 SQL Server ODBC 驱动程序(版本 17 或 18)。
为什么会弹出此报错?
通过 Flatpak 分发的应用程序会在一个安全的容器沙箱中运行,以保护你的主机系统。
默认情况下,Flatpak 虚拟环境与主机系统的库路径(例如 /opt/microsoft 或 /usr/lib64)完全隔离。当你使用包管理器(如 apt 或 dnf)在主机计算机上安装Microsoft ODBC 驱动程序时,该驱动程序会被放置在这些受限路径中,从而完全不被沙箱化的应用程序所察觉。
若需要使 Flatpak 应用程序能够连接,你必须运行我们的配置脚本。该脚本会将驱动程序文件复制到你的主配置分区($HOME/.config/navicat/ODBC/mssql)里的一个专用的可访问沙箱目录中,并在你的系统配置中注册一个专门的 Flatpak 驱动程序部分。
步骤 1:在主机系统上安装 Microsoft ODBC Driver 驱动程序
在运行配置工具之前,你必须在你的 Linux 主机操作系统上安装微软官方的 SQL Server ODBC 驱动程序。
对于 Ubuntu / Debian 系统:
sudo su
curl [https://packages.microsoft.com/keys/microsoft.asc](https://packages.microsoft.com/keys/microsoft.asc) | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
# Add the correct repository for your Ubuntu version (e.g., 22.04)
curl [https://packages.microsoft.com/config/ubuntu/22.04/prod.list](https://packages.microsoft.com/config/ubuntu/22.04/prod.list) | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt-get update
ACCEPT_EULA=Y sudo apt-get install -y msodbcsql18 mssql-tools18 unixodbc-dev对于 RHEL / Fedora / CentOS 系统:
sudo su
# Register Microsoft's RHEL repository
curl [https://packages.microsoft.com/config/rhel/8/prod.repo](https://packages.microsoft.com/config/rhel/8/prod.repo) | sudo tee /etc/yum.repos.d/mssql-release.repo
# Clear utf16 conflicts if any exist
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
ACCEPT_EULA=Y sudo yum install -y msodbcsql18 mssql-tools18 unixODBC-devel
步骤 2:配置 Flatpak 沙箱式驱动桥接
驱动程序安装到主机后,使用以下配置脚本克隆并映射驱动程序配置,以便 Flatpak 应用能够安全加载它。
1.下载脚本
请从以下链接下载 Microsoft ODBC 配置脚本:https://dn.navicat.com/drivers/configure_linux_mssql_odbc.sh
2.使脚本可执行
打开终端窗口,进入你保存该脚本文件的文件夹,并为其授予执行权限:
chmod +x configure_linux_mssql_odbc.sh3.通过 Sudo 运行该脚本
运行该脚本。它会要求你输入根用户密码,以便安全地更新系统范围内的/etc/odbcinst.ini 文件:
sudo ./configure_linux_mssql_odbc.sh
步骤 3:验证连接
重新启动 Navicat 并测试连接。
-
合作伙伴