Perl + DBI + REMOTE MySQL 服务器
Perl + DBI + REMOTE MySQL Server
我刚开始编写 Perl 代码,我需要帮助来弄清楚为什么我无法在 Perl 代码中使用 DBI 从我的 linux 桌面连接到远程 MySQL 服务器。
我已经从我的桌面连接到远程 MySQL 服务器,我已经在 DBI 连接线中使用名称或 IP 地址确定了删除 MySQL 服务器,但是,根据下面的错误消息,似乎DBI 正在尝试连接到本地数据库(不存在),而不是远程数据库:
!/usr/bin/perl -w
use DBI;
use DBD::mysql;
use MySQL;
$DBHOST = "mysqlserver.example.com";
$DBNAME = "anydb";
$DBUSER = "userdb";
$DBPASS = "userdbpwd";
$dsn = "dbi:mysql:database=$DBNAME,host=$DBHOST, port=3306";
my $dbh = DBI->connect("DBI:mysql:database=$DBNAME,host=$DBHOST, port=3306", "$DBUSER", "$DBPASS", \%attr);
运行 上面的代码我收到错误:
DBI connect failed: Can't connect to local MySQL server through
socket '/var/lib/mysql/mysql.sock
我安装了以下 DBI 驱动程序:
DBM ExampleP File Gofer Proxy SQLite Sponge mysql
正如您在 documentation for DBD::mysql 的 connect()
方法中看到的那样,DSN 部分应该用分号 (;
) 分隔,而不是逗号(,
):
use DBI;
$dsn = "DBI:mysql:$database";
$dsn = "DBI:mysql:database=$database;host=$hostname";
$dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
$dbh = DBI->connect($dsn, $user, $password);
我刚开始编写 Perl 代码,我需要帮助来弄清楚为什么我无法在 Perl 代码中使用 DBI 从我的 linux 桌面连接到远程 MySQL 服务器。 我已经从我的桌面连接到远程 MySQL 服务器,我已经在 DBI 连接线中使用名称或 IP 地址确定了删除 MySQL 服务器,但是,根据下面的错误消息,似乎DBI 正在尝试连接到本地数据库(不存在),而不是远程数据库:
!/usr/bin/perl -w
use DBI;
use DBD::mysql;
use MySQL;
$DBHOST = "mysqlserver.example.com";
$DBNAME = "anydb";
$DBUSER = "userdb";
$DBPASS = "userdbpwd";
$dsn = "dbi:mysql:database=$DBNAME,host=$DBHOST, port=3306";
my $dbh = DBI->connect("DBI:mysql:database=$DBNAME,host=$DBHOST, port=3306", "$DBUSER", "$DBPASS", \%attr);
运行 上面的代码我收到错误:
DBI connect failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock
我安装了以下 DBI 驱动程序:
DBM ExampleP File Gofer Proxy SQLite Sponge mysql
正如您在 documentation for DBD::mysql 的 connect()
方法中看到的那样,DSN 部分应该用分号 (;
) 分隔,而不是逗号(,
):
use DBI;
$dsn = "DBI:mysql:$database";
$dsn = "DBI:mysql:database=$database;host=$hostname";
$dsn = "DBI:mysql:database=$database;host=$hostname;port=$port";
$dbh = DBI->connect($dsn, $user, $password);