2010-02-11 40 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力提到的端口。當我添加端口時,它無法連接。