Попытка изменить имя хоста соединения в скрипте perl, который подключается к SQL БД сервера - PullRequest
3 голосов
/ 27 января 2020

У нас есть сценарий perl на компьютере Linux, который подключается к базе данных сервера 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)

Ответы [ 2 ]

2 голосов
/ 27 января 2020

Ваш скрипт подключается к базе данных, определенной в d ata s usce n ame (DSN) eventMSSQL.

Чтобы изменить хост , к которому вы подключаетесь, у вас есть три варианта:

Во-первых, вы можете изменить это определение DSN, чтобы оно указывало на другой хост. Этот eventMSSQL DSN определен где-то в вашей Linux системной установке ODB C, возможно, в /etc/odbc.ini или ~/.odbc.ini.

В качестве альтернативы, вы можете создать новое определение DSN с другим хостом, и подключитесь к нему вместо этого.

Наконец, вы также можете изменить DBI->connect data_source , чтобы включить строку соединения ODB C вместо DSN, которая выглядела бы как dbi:ODBC:Driver=...;Host=...;Port=.... (DSN является сокращением для этой спецификации Driver / Host / Port / et c.).

В DBD :: ODB C :: FAQ есть запись для DSN и строк подключения который здесь светится.

1 голос
/ 27 января 2020

Некоторые драйверы ODB C хранят информацию о соединении в некоторых выделенных файлах.

в качестве примера UnixODB C хранит в файле с именем odbcinst.ini в / et c

источник (https://www.easysoft.com/developer/languages/perl/dbd_odbc_tutorial_part_1.html)

...