heroku rails app: test RDS mysql как предложено Heroku июнь 2016 статья?

у кого-нибудь еще были проблемы с этим процессом в последнее время?

В конце концов я создал новое приложение basic rails, развернул его в heroku, а затем попытался добавить подключение RDS. очень надеюсь, что кто-то может обнаружить мои ошибки я схожу с ума!

  1. почему даже при попытке запустить производственный «режим» локально, он все еще пытается использовать db user/pass localhost?? интересно, есть ли какая-то конфигурация, скрытая где-то в rails

  2. второй шаг, я пропустил что-то очевидное? Я попробовал базовое приложение с абсолютного нуля, следуя всем руководствам, все еще не могу подключиться

  3. ошибка не может подключиться через носок признак плохой конфигурации в другом месте, он не должен использовать какие-либо сокеты, только доступ к порту?

спасибо
Бен

сопровождаемый

приложение настроено следующим образом

  • обновлено приложение rails для использования database_url
  • RDS создан в Северной Вирджинии (это то же самое, что heroku я считаю, но давайте не беспокоиться о латентности просто еще)
  • группа безопасности inbound port 3306 0.0.0.0/0(сначала я попробовал определенную RDS созданную группу, затем я попробовал полное значение по умолчанию, основанное на этом: подключение Heroku к RDS с помощью MySql2)
  • настройка SSL в грантах GRANT USAGE ON *.* TO '<usr>'@'%' REQUIRE SSL;(см. раздел извлечение ниже)
  • добавлен сертификат в Heroku repo ( amazon-rds-ca-cert.pemпохоже, в нем есть все промежуточные продукты)
  • добавлен DATABASE_URL=mysql2:://<usr>:<pwd>@pure-reaches-94579.cfc59p8se1g1.us-east-1.rds.amazonaws.com/purereaches?sslca=config/amazon-rds-ca-cert.pem
  • перезагрузка экземпляра rds при каждой попытке
  • я даже пробовал простые пароли RDS, думая, что сложные как-то связались с url

следующий этап расследования

Я пытался запустить производство локально, но использовал url базы данных для подключения к RDS:

    $ export RACK_ENV="production"
    $ export RAILS_ENV="production"
    $ export SECRET_KEY_BASE="blah"
    $ export DATABASE_URL="mysql2:://usr:pwd@pure-reaches-94579.cfc59p8se1g1.us-east-1.rds.amazonaws.com/purereaches?sslca=config/amazon-rds-ca-cert.pem"
    $ rails server -e production
    ...
    Mysql2::Error (Access denied for user 'root'@'localhost' (using password: NO)):
    mysql2 (0.4.5) lib/mysql2/client.rb:89:in `connect'
    ...

это показывает, что стандартный rails app config пытается подключиться к локальному хосту все еще

чего мне здесь не хватает!?

подробности

не удается войти через ssl на cli-очевидно, не хорошо

    $ mysql -h pure-reaches-94579.cfc59p8se1g1.us-east-1.rds.amazonaws.com -u <usr> -p purereaches --ssl-ca=$HOME/Documents/repositories/baseherokuapp/baseherokuappconfig/amazon-rds-ca-cert.pem --ssl-verify-server-cert
    Enter password: 
    ERROR 2026 (HY000): SSL connection error: SSL_CTX_set_default_verify_paths failed

rails приложение не будет подключаться

дает mysql2::Error (Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)):

информация

я беспокоюсь, что его все еще пытаются использовать sock… это отвлекающий маневр?

база данных.yml

    default: &default
      adapter: mysql2
      encoding: utf8
      pool: 5

    # for next step test
    # rails app error saying cannot connect to root @ localhost!
    development:
      <<: *default
      url: <%= ENV['DATABASE_URL'] %>

    production:
      <<: *default
      url: <%= ENV['DATABASE_URL'] %>

таблица грантов

     mysql> show grants;
    +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Grants for purereaches@%                                                                                                                                                                                                                                                                                                                                                          |
    +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'purereaches'@'%' IDENTIFIED BY PASSWORD <secret> REQUIRE SSL WITH GRANT OPTION |
    +-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.22 sec)

1 ответ

  1. Похоже, я слишком долго смотрел на одно и то же. Спасибо heroku поддержки за указание у меня было два «: «в моей строке! Какой я Маппет.