MySQL (ClearDB) не работает на Heroku

У меня есть несколько (БЕСПЛАТНЫХ) приложений на Heroku, все они используют PHP и MySQL. Однако на одном из них у меня постоянно возникают проблемы с ClearDB (MySQL). Я получаю следующую ошибку

SQLSTATE [HY000] [2002] Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)

Когда я пытаюсь подключиться к нему со своего локального компьютера, он работает нормально. Я пытался удалить аддон ClearDB и добавить его несколько раз, но это не решило проблему. Это продолжается уже около 3 недель.

Вот мой код:

    public $production = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'us-cdbr-east-04.cleardb.com',
    'login' => 'username',
    'password' => 'password',
    'database' => 'heroku_9565d18e1870f97',
    'prefix' => '',
    //'encoding' => 'utf8',
);

и вот URL-адрес, который я получил от Heroku / ClearDB

mysql://username:[email protected]/heroku_9565d18e1870f97?reconnect=true

Есть идеи, что делать сейчас? Правильно ли выглядит мой код? Я, вероятно, могу попросить поддержки у Хеорку, но я лучше сначала спрошу у сообщества, так как в данный момент я не плачу за Heroku.


person Teodor Talov    schedule 25.08.2013    source источник
comment
Такая же проблема возникает при подключении к ClearDB с помощью MySQL workbench.   -  person Rails beginner    schedule 05.09.2013
comment
Если вы уверены, что правильно используете кредиты, попробуйте удалить аддон ClearDb и добавить его снова. Это то, что в конечном итоге исправило это для меня. Я проделывал это раз 50, и в конце концов это сработало.   -  person Teodor Talov    schedule 05.09.2013


Ответы (1)


Похоже, ваша строка подключения отсутствует или неверна.

Надстройка ClearDB устанавливает переменную среды под названием CLEARDB_DATABASE_URL. Он содержит строку подключения mysql, которую необходимо использовать при попытке подключения.

person ctcherry    schedule 25.08.2013
comment
Это то, что я использую. Как я уже сказал, когда я пытаюсь подключиться из моего локального env. работает нормально. Это просто не работает на Хеорку. - person Teodor Talov; 25.08.2013
comment
Эта ошибка указывает на то, что mysql пытается подключиться через сокет unix, а не через TCP, возможно, попытаться получить отладочный вывод, чтобы убедиться, что установлено значение CLEARDB_DATABASE_URL. - person ctcherry; 25.08.2013
comment
Устанавливается значение CLEARDB_DATABASE_URL. Я не уверен, какой еще вывод отладки я могу получить? - person Teodor Talov; 25.08.2013
comment
Можете ли вы опубликовать раздел кода, который вы используете для соединения? - person ctcherry; 25.08.2013
comment
Я вижу, у вас есть параметры, установленные в $production, это установка / определение правильной среды? Он должен каким-то образом установить $default. (Я предполагаю, что вы используете CakePHP на основе вашего кода) - person ctcherry; 28.08.2013
comment
Да, это приложение CakePHP, но оно определяет правильную среду. Когда я удаляю аддон ClearDB и добавляю его снова, он исправляет его (не всегда), но они снова ломаются сами по себе. - person Teodor Talov; 28.08.2013
comment
Ах, я не понимал, что вы имели в виду, что он работал в течение короткого времени, прежде чем сломаться сам по себе, я думал, вы имели в виду, что он вообще не работал. Если он работает, а затем выходит из строя без изменения кода, я думаю, что причина, скорее всего, не в ваших руках, на данный момент у вас есть хороший случай, чтобы связаться со службой поддержки Heroku / ClearDB. - person ctcherry; 28.08.2013
comment
Согласитесь, поскольку я пользуюсь их бесплатными услугами, я решил сначала обратиться к сообществу и посмотреть, сталкивался ли кто-нибудь с такой же проблемой. У меня есть другие приложения, и они были надежными. Спасибо за помощь. - person Teodor Talov; 28.08.2013