zoukankan      html  css  js  c++  java
  • linux(debian)系统django配远程连接sqlserver数据库

    费了将近一天时间。最终解决,记下来留给须要的人

    须要安装的:

    python-odbc : https://github.com/mkleehammer/pyodbc下载后install

    安装python-odbc的假设报找不到sql.h文件错误,须要apt-get install g++。

    这块代码是用C++写的。须要编译器

    django-pyodbc : https://pypi.python.org/pypi/django-pyodbc 下载后install


    unixODBC:http://www.unixodbc.org/. linux下的odbc数据库源

    安装:./configure & make & make install

    或者 apt-get install unixODBC unixODBC-dev


    FreeTDS:http://www.freetds.org/ linux下的sqlserver驱动程序

    安装:./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --with-gnu-ld --enable-shared --enable-static

    make & make install

    apt-get install freetds freetds-dev tdsodbc


    配置:

    1.配置FreeTDS

    找到 freetds.conf以下增加:

    [MYSQLSERVER]
            host = sqlserver服务器IP
            port = 1433
            tds version = 8.0
            client charset = UTF-8

    把 tsql所在文件夹增加环境变量 如我的操作:vim /etc/profile 加一行PATH=$PATH:/usr/local/freetds/bin

    再source /etc/profile 使其立即生效

    測试FreeTDS是否成功安装:

    tsql -C 看安装环境

    tsql -S MYSQLSERVER -H sqlserver数据库IP -p 1433 -U 账号 -P password

    成功会看到例如以下信息:

    locale is "en_US.UTF-8"
    locale charset is "UTF-8"
    using default charset "UTF-8"
    1>


    这时输入sql命令測试一下吧:

    use test_db

    go

    select * from test;

    go

    成功安装后再继续下一步吧


    2.配置unixODBC

    找到odbc.ini odbcinst.ini

    我的在/etc/odbc.ini /etc/odbcinst.ini

    vim /etc/odbcinst.ini增加

    [FreeTDS]
    Description = ODBC of FreeTDS for MS-SQLServer
    Driver = /usr/local/freetds/lib/libtdsodbc.so

    FileUsage = 1


    vim /etc/odbc.ini增加

    [odbc连接名]
    Driver = FreeTDS
    ServerName = MYSQLSERVER(FreeTDS里配的连接名)
    Database = test_db(数据库名)

    測试unixODBC是否安全配置成功:

    isql -v odbc连接名 账号 password

    成功后会出现例如以下信息:

    +---------------------------------------+
    | Connected!                            |
    |                                       |
    | sql-statement                         |
    | help [tablename]                      |
    | quit                                  |
    |                                       |
    +---------------------------------------+
    SQL>

    写几个sql语句測试下吧,只是这次不用再use test_db了。由于已经配过数据库名称了

    select * from test

    也不用go了,呵呵


    3.安装完python-odbc和django-pyodbc后,配置django的setting(安装不说了,比較简单)

    'kids': {
            'ENGINE': 'django_pyodbc',
            'NAME': '数据库名', #这个不须要。只是django里有限制,必须有NAME项。这里不会生效,实际的在odbc.ini里写的
            'USER': '账号',
            'PASSWORD': 'password',
            'HOST': '', #这个也不会生效,实际生效的是freetds.conf里配置的
            'OPTIONS':{
                    'driver': 'FreeTDS',
                    'dsn':'odbc连接名', #ODBC DSN name defined in your odbc.ini,
            }

    over!



  • 相关阅读:
    一个非侵入的Go事务管理库——如何使用
    事件驱动的微服务-事件驱动设计
    事件驱动的微服务-总体设计
    如何快速高效率地学习Go语言
    清晰架构(Clean Architecture)的Go微服务
    清晰架构(Clean Architecture)的Go微服务: 编码风格
    清晰架构(Clean Architecture)的Go微服务: 事物管理
    清晰架构(Clean Architecture)的Go微服务: 依赖注入(Dependency Injection)
    msf stagers开发不完全指北(四): msf 中使用域前置技术隐藏流量
    elementui 表格中带有按钮的loading解决方案
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8317918.html
Copyright © 2011-2022 走看看