Работа с приложением, которое будет использоваться администратором только для создания нескольких экземпляров другого приложения.Создание пользователя Mysql в действии контроллера Rails
Иными словами, app A
будет использоваться для создания клонов app B
на сервере и создания всех конфигураций, необходимых для запуска этого клонированного приложения на субдомене new_clone.domain.com
.
Удаленное клонирование приложения, созданный файл конфигурации apache
, файл unicorn server settings
. Удалось запустить rake db:create; db:migrate
, но я сделал это с пользователем root
пользователя mysql.
В точке, где я клонировать приложение, сгенерировать database.yml
файл для нового клонированного приложения, которое имеет в данный момент username
и password
набора как root
, но я woould хотел бы иметь другой пользователь для каждого клонированного приложения.
Приложение А имеет модель под названием Subdomain
, в subdomains_controller.rb
на create
действие я все вещи, клон, генерировать файлы конфигурация, выполнение задач рек, и т.д ..., а также в этом create
действия Мне нужно создать новый пользователь Mysql
с привилегиями для конкретной базы данных.
То, что я пытался до сих пор, не могу сказать, что я много сделал, я попытался запустить команду MySQL в контроллере создать действие:
def create
if @subdomain.save
....
system "mysql -u root -p root; create database new_database;..."
....
else
....
end
end
, но это не ставит свою создать действие на удержание до I введите пароль, и даже если я найду способ его преодолеть, я не уверен, что остальные команды mysql будут работать. Вероятно, есть лучший способ добавить пользователя Mysql с одной командной строкой, не входя в консоль mysql.
спасибо.
ли ваш пользователь имеет привилегии, необходимые для базы данных или создания пользовательского ? –
ну, мой пользователь root да, но это идея - при создании нового пользователя у него должны быть привилегии для создания базы данных и иметь все виды привилегий только в этой базе данных. – rmagnum2002
Эта команда запрашивает пароль root только потому, что существует пробел между '-p' и' root', проверьте страницу 'mysql' man. – toro2k