【发布时间】:2016-06-04 15:49:33
【问题描述】:
我是编写 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 连接失败:无法通过连接本地 MySQL 服务器 套接字'/var/lib/mysql/mysql.sock
我安装了以下 DBI 驱动程序:
DBM ExampleP File Gofer Proxy SQLite Sponge mysql
【问题讨论】:
-
MySQL模块是什么??? -
由于您是 Perl 新手,请确保始终在您编写的每个 Perl 文件的顶部包含
use warnings和use strict。 -
您在代码中传递给
connect的%attr的定义在哪里? -
顺便说一句,你不需要将字符串变量传递为
"$DBUSER",你可以简单地删除" "