2010-02-11 39 views
1

我想连接到一个正在运行在端口3307的mysql服务器。我如何连接到服务器?我没有看到任何其他方式来指定端口。我正在使用像这样:perl脚本连接到mysql服务器端口3307

#!/usr/bin/perl 
use Mysql; 

$host = "localhost"; 
$database = "abc"; 
$tablename = "def"; 
$user = "uuu"; 
$pw = "ppp"; 


$connect = Mysql->connect($host, $database, $user, $pw) or die "Cannot connect to MySQL server\n"; 

我想使用MySQL包而不是DBI。

谢谢。

+3

为什么你不想使用DBD DBI?他们是perl上的标准... – 2010-02-11 23:56:31

+1

-1:不,你想使用DBI。真。 – 2010-02-12 11:10:39

回答

6

你错了。你想使用DBI而不是Mysql。 Mysql模块在12年前变得过时了,当时它被一个兼容性模块取代,这个模块只是一个DBI的包装器。即使兼容模块已从当前分配中删除;你必须安装一个旧的DBD::mysql才能得到它(它在2006年发布的最后发货DBD-mysql 3.0008)。

#!/usr/bin/perl 

use strict; 
use DBI; 

my $host = "localhost"; 
my $database = "abc"; 
my $port = 3307; 
my $tablename = "def"; 
my $user = "uuu"; 
my $pw = "ppp"; 

my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host;port=$port", 
         $user, $pw) 
    or die "Cannot connect to MySQL server\n"; 
1

尝试指定主机像localhost:3307

0

对我来说...关注似乎是工作...

#!/usr/bin/perl 

use strict; 
use DBI; 

my $host = "rajeshk-W7"; 
my $database = "rajesh"; 
my $port = 3307; 
my $tablename = "def"; 
my $user = "rajesh"; 
my $pw = "rajesh123"; 
#my $dbh = DBI->connect("DBI:mysql:rajesh:rajeshk-W7","rajesh","rajesh123") or die "Cannot connect to MySQL server\n"; 

my $dbh = DBI->connect("DBI:mysql:database=$database;host=$host",$user, $pw) or die "Cannot connect to MySQL server\n"; 

其中i力提到的端口。当我添加端口时,它无法连接。