【问题标题】:Trying to change connection host name in perl script that connect to SQL Server DB尝试更改连接到 SQL Server DB 的 perl 脚本中的连接主机名
【发布时间】:2020-01-27 03:18:26
【问题描述】:

我们在 Linux 机器上有一个 perl 脚本,它连接到 SQL Server 数据库并获取信息,我们正在尝试更新数据库主机详细信息,但在该脚本中找不到执行此操作的参数或变量。

use strict;
use XML::Simple;
use Data::Dumper;
use DBI;
use DBI qw(:sql_types);
use MIME::lite;
my $SQL_Datasource= 'dbi:ODBC:eventMSSQL';
my $SQL_user= 'user1';
my $SQL_password ='abc@123';
$dbh=DBI->connect($SQL_Datasourse,$SQL_user,$SQL_password)

【问题讨论】:

    标签: sql-server perl dbi


    【解决方案1】:

    您的脚本正在连接到 data sname (DSN) eventMSSQL 下定义的数据库。

    要更改您连接的主机,您有三个选项。

    首先,您可以修改此 DSN 定义以指向不同的主机。这个eventMSSQL DSN 是在您的 Linux 系统的 ODBC 安装中的某个地方定义的,可能在 /etc/odbc.ini~/.odbc.ini 中。

    或者,您可以使用不同的主机创建新的 DSN 定义,然后连接到该主机。

    最后,您还可以更改您的DBI->connect data_source 以包含一个 ODBC 连接字符串而不是一个 DSN,它看起来类似于 dbi:ODBC:Driver=...;Host=...;Port=...。 (DSN 是该驱动程序/主机/端口/等规范的简写。)

    DBD::ODBC::FAQ 有一个 entry on DSNs and connection strings 在这里很有启发性。

    【讨论】:

      【解决方案2】:

      一些 ODBC 驱动程序将连接信息存储在一些专用文件中。

      例如 UnixODBC 存储在 /etc 中名为 odbcinst.ini 的文件中

      来源(https://www.easysoft.com/developer/languages/perl/dbd_odbc_tutorial_part_1.html

      【讨论】:

      • 嗨 Mike,在 osbcinst.ini 中我确实看到了 Sql Server 配置,但是我找不到包含主机详细信息的参数。
      • 我相信odbcinst.ini 定义了可用的 ODBC 驱动程序,而不是数据库。它回答了这个问题,ODBC 安装在哪里可以找到 Firebird 或 PostgreSQL 或 SQL Server 或 Oracle 等驱动程序? DSN 在别处指定,引用那些驱动程序定义。
      猜你喜欢
      • 1970-01-01
      • 2013-07-08
      • 2013-07-21
      • 1970-01-01
      • 2020-11-25
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多