调试Archery连接SQL Server提示驱动错误

当我们在调试Archery的时候,连接SQL Server 会报错,而MySQL部分没有问题。报错信息如下:

Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")

记录下 我们是怎么定位问题、寻找技术文档帮助、和安装相关组件的。

1.定位关键代码

通过报错路径和设置断点,很快定位的报错代码。

其路径为

/sql/engines/mssql.py

报错的方法是get_connection,具体代码

def get_connection(self, db_name=None):
        connstr = """DRIVER=ODBC Driver 17 for SQL Server;SERVER={0},{1};UID={2};PWD={3};
client charset = UTF-8;connect timeout=10;CHARSET={4};""".format(self.host, self.port, self.user, self.password,
                                                                 self.instance.charset or 'UTF8')
        if self.conn:
            return self.conn
        self.conn = pyodbc.connect(connstr)
        return self.conn

相对比较简单,没啥逻辑。

2.寻找技术文档

主要还是 https://archerydms.com/ 官方文档

step 1 点击 【快速开始】

调试Archery连接SQL Server提示驱动错误

step 2 找到部署相关的文档

调试Archery连接SQL Server提示驱动错误

step 3 选择 手动部署 部分

调试Archery连接SQL Server提示驱动错误

Step 4 选择其中的SQL Server 部分 【安装 MS SQL Server 驱动(需要使用MsSQL的按需安装)】

调试Archery连接SQL Server提示驱动错误

3.安装相关组件

上面的具体要求和步骤如下

CentOS 6
curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo
CentOS 7
curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/mssql-release.repo
卸载冲突驱动
sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
安装驱动
sudo ACCEPT_EULA=Y yum install msodbcsql17
sudo ACCEPT_EULA=Y yum install mssql-tools
更新环境变量
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
安装ODBC依赖
sudo yum install unixODBC-devel

如果yum源 或者 本地server 可以上外网,则安装要求之间运行安装即可。

下面我们看看,如果因为yum源和上网权限, server之间 yum不行怎么办?

我们把上面的执行拆解掉

step 1 因为 Server是 CentOS 7 ,所以,我们在可上Intent 的电脑上运行

https://packages.microsoft.com/config/rhel/7/prod.repo

下载 prod.repo 文件

调试Archery连接SQL Server提示驱动错误

step 2 用记事本方式 打开 prod.repo

里面的内容如下:

[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

step 3 打开访问其中的 baseurl

网址 https://packages.microsoft.com/rhel/7/prod/

看到其中是 各个 组件大全,包含各种组件包

调试Archery连接SQL Server提示驱动错误

step 4 在界面上Ctrl + F ,查找 到【msodbcsql17】 【mssql-tools】,找到 合适版本分别进行下载。

查找msodbcsql17

调试Archery连接SQL Server提示驱动错误

查找mssql-tools

调试Archery连接SQL Server提示驱动错误

注意,因本地已安装 unixODBC-devel,所以,无需安装。只要安装上面的两个组件就可以了,其他任何操作都不需要了,即相当于 只执行建议中的

安装驱动
sudo ACCEPT_EULA=Y yum install msodbcsql17
sudo ACCEPT_EULA=Y yum install mssql-tools

step 4 将下载的rpm 文件 上传的服务器上,通过 yum localinstall 插件名 命令分别安装即可。

step 5 安装需要的组件后,再次调试,报错消失了。

4.说明

梳理整理记录于此,希望遇到类似情况,有所帮助,减少不必要的探索和挣扎。

Original: https://www.cnblogs.com/xuliuzai/p/16377442.html
Author: 东山絮柳仔
Title: 调试Archery连接SQL Server提示驱动错误

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622581/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 0812Java核心技术卷(1)随笔

    自增运算符与自减运算符 这些运算符改变了变量的值,所以它的操作数不能是数值。例如4++就是一条非法语句不建议在其他表达式内部使用++,因为这样会降低代码可读性,产生bug Orig…

    数据库 2023年6月14日
    098
  • 一次较波折的MySQL调优

    春节假期的一天,阳光明媚,春暖花开,恰逢冬奥会开幕,想着这天一定是生肖吉日,就能顺风顺水了。没想到,我遇到了一位客户,有点波折。 [En] Spring Festival holi…

    数据库 2023年5月24日
    073
  • Isilon 的OneFs常见操作命令(一)

    1背景知识: Isilon的oneFS是基于Free BSD的,FreeBSD 是一种类UNIX操作系统,因此有些类似Linux操作系统的常见命令可以直接使用,但有些又略微差别,需…

    数据库 2023年6月14日
    0334
  • Spring Boot结合Element UI前后端分离的aixos的简单操作

    1:axios是什么? 2:准备工作: 安装axios:npm install axios 或者直接使用在线的cdn:script> 我这边是结合了element UI来做的…

    数据库 2023年6月6日
    0222
  • MySQL事务提交流程详解

    一. 事务的提交流程。 获取 MDL_key::COMMIT 锁: FTWRL会阻塞 commit 操作。 XID_Event生成并写入binlog cache中。会首先将事务中的…

    数据库 2023年5月24日
    089
  • 阿里云服务器中MySQL数据库被攻击

    前几天刚领了一个月的阿里云服务器玩,在里面装了MySQL,然后这几天找了个小项目练习着玩呢,就将表建在里面了。刚访问添加员工还好好的,刚给员工分页查询呢 ,啪一下 ,很突然昂 ,就…

    数据库 2023年6月11日
    081
  • MySQL自带的四个系统数据库

    MySQL系统数据库mysql、information_schema、performance_schema、sys的结构和作用。 MySQL四个自带的数据库为mysql、infor…

    数据库 2023年6月11日
    088
  • 索引的树结构

    二分查找 二叉树 二叉平衡树 B-TREE :二叉平衡树的基础上,使加载一次节点,可以加载更多路径数据,同时把查询范围缩减到更小 缺点:业务数据的大小可能远远超过了索引数据的大小,…

    数据库 2023年5月24日
    063
  • 论程序员的英语水平,看看你在几级?

    获取下一天的日期 根据指定的日期,获取其后一天的日期 点评: 方法可重命名为getNextDay “商品”怎么说? 商品表:t_good 然后,程序里都是g…

    数据库 2023年6月9日
    0123
  • 用 WebClient 代替 RestTemplate

    RestTemplate是用于执行 HTTP 请求的同步客户端,通过底层 HTTP 客户端库(例如 JDK HttpURLConnection、Apache HttpCompone…

    数据库 2023年6月14日
    067
  • 第五届蓝帽杯-溯源取证wp

    直接使用vmdk文件创建虚拟机,结果弹出提示 点击全部允许之后,进不去系统,到达了initramfs页面 由于提供的vmdk文件只有1G大小,将其转回raw文件,发现有10个G的大…

    数据库 2023年6月11日
    0105
  • MySQL变量、流程控制和游标

    变量、流程控制和游标 变量 在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果的数据 系统变量 变量由系统定义,属于服务器级别 […

    数据库 2023年5月24日
    066
  • 一,Flink快速上手

    1.依赖配置 1.1 pom文件 8 8 1.13.0 1.8 2.12 1.7.30 org.apache.flink flink-java ${flink.version} o…

    数据库 2023年6月6日
    092
  • [LeetCode]35. 搜索插入位置

    给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。 示例 1: 输入: [1,3…

    数据库 2023年6月9日
    079
  • Linux常用命令总结(二)

    1.Netstat 命令 用于显示各种网络相关信息,如网络连接,路由表,接口状态等待。 例如 统计IP110.120.119.XXX的连接数: netstat | grep 110…

    数据库 2023年6月16日
    084
  • 数据库基础,看完这篇就够了!

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月11日
    085
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球