簡體   English   中英

在OS X上使用Vagrant / chef-solo設置VM時的MySQL問題

[英]MySQL issues when setting up a VM with Vagrant/chef-solo on OS X

我已經在運行Mountain Lion的MBP筆記本電腦上安裝了VirtualBox,Vagrant和Chef-solo。 我已經從opscode下載了食譜,並且“無用”地工作了。 VM已成功創建,並且我得到了一個工作正常的LAMP堆棧。

我遇到的困難是創建數據庫和用戶訪問數據庫。

我已經完成的工作:創建了一個包含Vagrantfile和目錄Cookbook的開發文件夾。 在食譜中,我有

README.md
apache2
apt
aws
build-essential
database
hnnapp
mysql
openssl
php
postgresql
xfs
xml

“ hnnapp”包含我自己的配方以啟動我的虛擬機。 我用刀初始化了文件夾,然后編輯了metadata.rb以包含

depends "apt"
depends "apache2"
depends "database"
depends "mysql"
depends "xml"
depends "openssl"
depends "php"
depends "build-essential"

在配方/ default.rb中,我包括

include_recipe "apt"
include_recipe "apache2"
include_recipe "xml"
include_recipe "openssl"
include_recipe "database::mysql"
include_recipe "mysql"
include_recipe "mysql::client"
include_recipe "mysql::server"
include_recipe "mysql::ruby"
include_recipe "php"
include_recipe "php::module_mysql"
include_recipe "apache2::mod_php5"
include_recipe "apache2::mod_rewrite"

apache_site "default" do
    enable true
end

mysql_database node['hnnapp']['database'] do
    connection  ({:host => 'localhost', :username => 'root', :password => node['mysql']['server_root_password']})
    action :create
end

mysql_database_user node['hnnapp']['db_username'] do
    connection  ({:host => 'localhost', :username => 'root', :password => node['mysql']['server_root_password']})
    password node['hnnapp']['db_password']
    database_name node['hnnapp']['database']
    privileges [:select, :update, :insert, :cretae, :delete]
    action :create
end

最后,我的Vagrantfile包括

config.vm.provision :chef_solo do |chef|
    chef.add_recipe "hnnapp"
    chef.json = {
      "hnnapp" => {
        "db_password" => "test", 
        "db_username" => "testuser",
        "database" => 'testdatabase'
      },
      "mysql" => {
        "server_root_password" => "098f6bcd4621d373cade4e832627b4f6",
        "server_debian_password" => "098f6bcd4621d373cade4e832627b4f6",
        "server_repl_password" => "098f6bcd4621d373cade4e832627b4f6"
      }
    }
  end

當我“無用的ssh”進入虛擬機時,我看到安裝了apache,php和mysql。 MySQL除了測試和信息模式外沒有其他數據庫。 我可以使用“ mysql”進入mysql客戶端,但是我沒有創建任何數據庫或用戶的特權。 sudo mysql也不起作用。

我想找出兩件事:

  1. 我要這樣做正確嗎? 將正確的命令放在正確的文件中?
  2. 我的腳本中有什么錯誤。

如果在mysql_database_user塊中的動作中添加:grant,會有所不同嗎?

action [:create, :grant]

我發現本教程對於用用戶和特權配置mysql很有幫助,盡管我仍然對Chef-solo的目錄結構有些困惑。

http://misheska.com/blog/2013/06/23/getting-started-writing-chef-cookbooks-the-berkshelf-way-part2/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM