Catalyst create schema无法连接,但我可以

时间:2010-07-17 03:29:10

标签: mysql perl catalyst dbd

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

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的连接,但我可以通过命令行连接就好了,并尝试暂时从任何地方打开数据库连接,仍然没有成功。很抱歉我能提供的信息很少,但这就是我现在所拥有的一切。

2 个答案:

答案 0 :(得分: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,但我用反斜杠换行格式化了你,所以你可以根据需要粘贴它。)

答案 1 :(得分:1)

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