帮助使用perl dbi和mysql来查询远程数据库

jda*_*mae 1 mysql perl

我需要帮助搞清楚这个配置以及使用mysql perl DBI.

我的本地连接工作正常,但一旦我尝试查询远程主机数据库我就会收到错误.我知道我对远程数据库的设置是有效的,因为我可以从shell执行以下操作:

作品:

$ mysql -u foo-man -pmypa55w0rd --database abc -h abc123.name.locale --port 3306 -ss -e "select UUID()"  
Run Code Online (Sandbox Code Playgroud)

从使用perl DBI开始,localhost也可以工作:

my $dbh = DBI->connect("DBI:mysql:database=test;host=localhost:port=3306;user=root");
Run Code Online (Sandbox Code Playgroud)

但是使用perl DBI,查询远程数据库,没有运气.

不工作:

my $dbh = DBI->connect("DBI:mysql:database=abc;host=abc123.name.locale;port=3306;user=foo-man,password=mypa55w0rd"); 
Run Code Online (Sandbox Code Playgroud)

例如,也不使用IP:

my $dbh = DBI->connect("DBI:mysql:database=abc;host=123.567.89.10;port=3306;user=foo-man,password=mypa55w0rd");
Run Code Online (Sandbox Code Playgroud)

cjm*_*cjm 6

我会用

my $dbh = DBI->connect("DBI:mysql:database=abc;host=abc123.name.locale;port=3306",
                       'foo-man', 'mypa55w0rd');
Run Code Online (Sandbox Code Playgroud)

但是,如果您将用户名后面的逗号更改为分号,它可能也会起作用.