尝试更改连接到 SQL 服务器数据库的 perl 脚本中的连接主机名

Trying to change connection host name in perl script that connect to SQL Server DB

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

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)

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

例如 UnixODBC 存储在 /etc

中名为 odbcinst.ini 的文件中

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

您的脚本正在连接到 data ssource n 下定义的数据库名称 (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 是该 Driver/Host/Port/etc 规范的 shorthand。)

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