0

所以我可以连接(显然我替换了所有的真实值)

mysql -u username -p -h db.dbhostname.com dbname

但是当我运行 Catalyt 的创建脚本时,我得到了

$ ./script/dasgift_create.pl model DB \
    DBIC::Schema MyApp::Schema create=static \
    components=TimeStamp \
    dbi:mysql:dbname:db.dbhostname.com username p@55w0rd
DBIx::Class::Schema::Loader::make_schema_at():
DBI Connection failed:
DBI connect('dbname:db.dbhostname.com','username',...) failed:
Access denied for user 'username'@'whereiam.com' (using password: YES)
at /opt/local/lib/perl5/site_perl/5.8.9/DBIx/Class/Storage/DBI.pm line 1104

它的行为就像数据库服务器不允许来自 whereiam.com 的连接,但我可以通过命令行连接就好了,并尝试暂时打开数据库以连接来自任何地方的连接,但仍然没有成功。很抱歉我能提供的信息很少,但这就是我目前所拥有的。

4

2 回答 2

1

我不认为 mysql DSN 那样工作。尝试将脚本运行为:

./script/dasgift_create.pl model DB DBIC::Schema MyApp::Schema \
create=static components=TimeStamp \
'dbi:mysql:database=dbname;host=db.dbhostname.com' \
username p@55w0rd

(更改的部分只是 DSN,但我为您使用反斜杠换行符对其进行了格式化,因此您可以根据需要粘贴它)。

于 2010-07-17T03:33:39.637 回答
1

很抱歉浪费了您的时间。我觉得自己像个白痴。我的密码中有一个美元符号,我没有费心把它放在引号中,所以它本质上是在尝试扩展环境变量时截断密码。正确引用它可以解决问题。再次感谢您的回复,顺便说一句,原始连接字符串也可以正常工作。

于 2010-07-17T04:11:31.320 回答