设为首页 收藏本站
查看: 1009|回复: 0

[经验分享] perl 调用sql 2008-wdl1111

[复制链接]

尚未签到

发表于 2018-8-31 12:56:30 | 显示全部楼层 |阅读模式
  一, 安装 unixODBC
  下载安装包. 在 RedHat 安装光盘上就有
  unixODBC-2.2.11-1.RHEL4.1.i386.rpm
  unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
  unixODBC-kde-2.2.11-1.RHEL4.1.i386.rpm
  安装
  rpm -Uvh unixODBC-2.2.11-1.RHEL4.1.i386.rpm
  rpm -Uvh unixODBC-devel-2.2.11-1.RHEL4.1.i386.rpm
  如果安装中提示有对其它安装包的依赖,则按照提示先安装
  哪些包.
  或者从源码安装 unixODBC
  下载源码集
  unixODBC-2.2.11.tar.gz
  # tar xzf unixODBC-2.2.11.tar.gz
  # cd unixODBC-2.2.11
  # ./configure
  # make
  # make install
  ./configure 的时候也有可能提示找不到某些依赖库.
  下载这些依赖库的源码,编译,安装.
  rpm 安装和源码编译安装的差别在于配置文件 odbc.ini, odbcinst.ini
  的位置不同. 前者为 /etc , 后者为 /usr/local/etc
  二, 安装 FreeTDS
  unixODBC 提供了Linux 对ODBC 的支持,但它只是一个 ODBC的管理器, 要连接实际的数据库还得提供这种数据库的 ODBC 驱动.
  FreeTDS就是Linux 下 用于连接MS SQL Server 和 Sybase 的免费ODBC 驱动
  注意, 必须先装 unixODBC, 再装 freetds
  freetds-0.64 是目前的最新稳定版.
  下载源码包 freetds-stable.tgz
  # tar xzf freetds-stable.tgz
  # ./configure --with-unixodbc=/usr/local --with-tdsver=8.0
  # make
  # su
  # make install
  将安装到 /usr/local 下
  如果 unixODBC是源码安装, 则--with-unixodbc=/usr/local
  如果 unixODBC是rpm安装, 则不需要该选项
  三, 配置 unixODBC 和 FreeTDS
  3.1 向unixODBC 登记 FreeTDS 驱动
  修改 /etc/odbcinst.ini (或者/usr/local/etc/odbcinst.ini)
  在文件中添加
  =========================== /etc/odbcinst.ini  ======================
  # Driver from FreeTDS package
  # setup from FreeTDS package
  [FREETDS]
  Description     = ODBC of FreeTDS for MS SQL 2000
  Driver          = /usr/local/lib/libtdsodbc.so
  Setup           = /usr/local/lib/libtds.so
  FileUsage       = 1
  ===================================================================
  3.2  在 FreeTDS 的配置文件中添加指向具体数据库的访问信息
  修改 /usr/local/etc/freetds.conf
  在末尾添加如下内容. 该配置文件中原有的内容请仔细阅读, 是不错的教材
  ===================================================================
  [MYSQLSERVER]
  host = 192.168.0.5    ; MS SQL Server 的 IP 或者域名
  port = 1433
  tds version = 8.0
  client charset = UTF-8  ; 客户端软件可识别的字符集.
  ===================================================================
  注意, client charset 必需大于或等于服务端数据库使用的字符集.
  例如,服务端数据库是 MS SQL Server 2000, 字符集是 GB2312.
  那么 client charset 可以设置为 GB2312(等于), GB18030(大于),UTF-8(大于)但不能设为ISO-8859-1(小于), Shift_JIS(不等于).
  由于 UTF-8 是所由字符集的超集,因此设置为 UTF-8 总是可行的.
  此外, FreeTDS的client charset不能设置为 UTF16. 这时目前该软件设计的局限,其官方网站称,在未来版本中可能会增加对client charset UTF16的支持.(cp936)
  3.3  修改 /etc/odbc.ini (如果odbc是从源码安装,则 /usr/local/etc/odbc.ini)
  添加DSN.
  =========================== /etc/odbc.ini  ======================
  [ODBC Data Sources]
  TEST1dsn= My first Test DSN
  TEST2dsn= My second Test DSN
  [TEST1dsn]        ; DSN 名
  Driver          = /usr/local/lib/libtdsodbc.so
  Description     = My First Test DSN
  Trace           = No
  Servername      = MYSQLSERVER     ;在 freetds.conf中定义
  Database        = MYTESTDB              ;库名
  [TEST2dsn]
  Driver          = /usr/local/lib/libtdsodbc.so
  Description     = My Second Test DSN
  Trace           = No
  Server          = 192.168.0.5     ; 可以直接写数据库服务器的访问信息
  Database        = MyTESTDB
  Port            = 1433
  TDS_Version     = 8.0
  [Default]
  Driver          = /usr/local/freetds/lib/libtdsodbc.so
  ===================================================================
  注意:
  用 unixODBC 通过 freeTDS 访问 MS SQL Server 有两种配置方式.
  (1)一种是将服务器信息写在 freeTDS 的配置文件 $PREFIX/etc/freetds.conf 中,而 /etc/odbc.ini 中使用 Servername 来指向 freetds.conf 中设定的 DSN.
  如上例中的 [TEST1dsn]
  (2).另一种方式是将服务器信息也一并写在 /etc/odbc.ini 中. 如上例中的 [TEST2dsn].
  注意,关键字有所不同.  例如, freetds.conf 中的 tds version 在 /etc/odbc.ini 中为 TDS_Version.
  方式(2)相对简单,但只有少数几个关键字可以控制freetds,至于freetds的其它特征则使用freetds的缺省配置.
  方式(1)虽然复杂一些,但对freetds可进行更细致的控制,例如可指定客户端的字符集.
  推荐使用方式(1)进行配置.


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-559392-1-1.html 上篇帖子: perl CGI::Session 下篇帖子: 用perl解决问题思路
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表