Развертывание базы данных MySql в cloudfoundry

Я разработал приложение с использованием JSP, Spring Security, MySql. Я развернул его на Cloudfoundry. Но только военный файл, и я связал службу MySQL. Но я также должен настроить базу данных MySQL, которая состоит из двух таблиц, нового пользователя и всего этого в моей собственной базе данных. В то время как я тестировал свое приложение на localhost, я подготовил базу данных, выполняющую ручные скрипты, в командном окне MySQL. Вопрос: Как я могу сделать те же конфигурации в CloudFoundry? могу ли я таким же образом запустить все команды и сценарии вручную или каким-либо образом экспортировать базу данных? если да, то как это сделать. А что написать здесь сейчас вместо localhost?

 <property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/security_filter" />

благодарю вас

2 ответа

Caldecott (туннель vmc) - это правильный способ доступа к вашей базе данных cloudoundry (для меня это работает, и я использую ruby ​​1.8): http://docs.cloudfoundry.com/tools/vmc/caldecott.html

Если это не сработает, вам придется что-то делать вручную (намного сложнее):

  • Создайте пример приложения jsp/servlet, которое подключается к базе данных mysql (получая строку подключения, имя пользователя и пароль в качестве ввода от пользователя). Затем он просто запустит оператор SQL для базы данных (оператор SQL также будет введен пользователем)
  • Пакет это приложение в вашей войне
  • Теперь вам нужно получить строку подключения к базе данных / имя пользователя и пароль. Вы можете получить их из переменной окружения VCAP_SERVICES. Просто войдите, зарегистрируйте это в слушателе запуска (например, ServletContextListener)
  • Разверните свою войну и получите логи с сервера (vmc logs ApplicationName). Получить строку подключения, имя пользователя и пароль
  • Войдите в свое приложение и используйте приложение базы данных для доступа к базе данных, используя информацию из базы данных, которую вы собрали на предыдущем шаге.

Просто отметьте, что это очень опасный подход. Просто убедитесь, что это приложение базы данных защищено или после первоначального импорта удалите его из вашей войны и повторно разверните приложение

В качестве заключительного замечания вы можете проверить, существует ли такое консольное приложение базы данных, чтобы вам не приходилось создавать свое собственное (например, у grails есть хорошее приложение для этого http://grails.org/plugin/dbconsole. Возможно, что-то существует для JSP / сервлеты)

Надеюсь, это поможет, если вам не повезло с проблемой рубина

Вам нужно будет создать mysqldump из вашей базы данных. Получив файл mysqldump, вы используете caldecott и выполняете туннель vmc для своей службы MySQL. После того, как вы установили соединение со своей службой MySQL в Cloud Foundry, вам нужно будет использовать команду mysql, чтобы вручную импортировать файл mysqldump в вашу службу.

Чтобы узнать, как использовать туннель vmc, посетите сайт документации по адресу: http://docs.cloudfoundry.com/tools/vmc/caldecott.html

Другие вопросы по тегам