sql-server - 尝试更改连接到 SQL Server 数据库的 perl 脚本中的连接主机名

标签 sql-server perl dbi

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

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)

最佳答案

您的脚本正在连接到在 ddata source name (DSN) eventMSSQL 下定义的数据库>.

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

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

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

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

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

关于sql-server - 尝试更改连接到 SQL Server 数据库的 perl 脚本中的连接主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59924809/

相关文章:

perl - SQLite:如果列不存在,则即时添加列

sql - 在 T-SQL 中运行乘法

mysql - SQL,如何测试并发事务

sql - MySQL 是否可以通过一次查询返回多个结果集?

mysql - 有没有其他库可以用来在 Ruby 中连接 MySQL?

perl - 在散列中添加 Getopt::Long 选项,即使使用重复说明符

sql - 根据复杂(?)标准从 SQL Server 数据库中选择重复项

sql - 查找表中的最小和最大数据列

Perl 字符串替换乱码 Unicode 字符串

perl - 我如何运行 Perl 测试并将结果与​​ Ant 中的 JUnit 报告合并?