Итак, я могу соединиться с (очевидно, я заменил все реальные значения)
mysql -u username -p -h db.dbhostname.com dbname
Но когда я запускаю Catalyt create script, я получаю
$ ./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
Его поведение, подобное серверу db, не позволяет подключаться с whereiam.com, но я могу подключиться через командную строку просто отлично и попытался открыть db до соединений из любой точки временно, но без успеха. Извините за небольшую информацию, которую я мог бы предоставить, но все, что у меня есть.
Извините, что потратил ваше время. Я чувствую себя придурком. У моего пароля был знак доллара, и я не потрудился поместить его в кавычки, поэтому он по сути усекал пароль, пытаясь расширить переменную окружения. Цитируя его, исправлена проблема. Еще раз спасибо за ваш ответ hobbs, кстати, также работает оригинальная строка подключения.
Я не думаю, что mysql DSNs работают именно так. Попробуйте запустить script как:
./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, но я отформатировал ее с помощью символов обратной косой черты для вас, чтобы вы могли вставить ее, если хотите).