Skip to main content

CHARACTER SET utf8 COLLATE

#
# Cookbook Name:: database-mysql-dev
# Recipe:: mysql
#
# Copyright (c) 2017 The Authors, All Rights Reserved.

include_recipe "yum-mysql-community::mysql56"

yum_package [ 'mysql-community-server' ] do
  action :install
  flush_cache [:before]
end

include_recipe "database::mysql"

service 'mysqld' do
  action [:enable, :start]
end

mysql_connection_info = {
  host:     'localhost',
  username: 'root',
  password: ''
}

node['db'].each do |d|
  d.each do |n|
    if #n['name'].attribute?
      puts "################################################################"
      puts "###########                                          ###########"
      puts "###########          DATABASE- #{n['name']}          ###########"
      puts "###########        Executing recipes/mysql.rb        ###########"
      puts "###########                                          ###########"
      puts "################################################################"

      mysql_database "#{n['name']}" do
        connection mysql_connection_info
        action :create
        ignore_failure true
      end

      # Let this database user access this database
      puts #n['user']
      mysql_database_user "#{n['user']}" do
        connection mysql_connection_info
        host          "#{n['host']}"
        password      "#{n['pass']}"
        database_name "#{n['name']}"
        action   :create
        ignore_failure true
      end

      execute "grant-perms-#{n['user']}" do
        command "mysql -u root  -r -B -N -e \"GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, EXECUTE, CREATE VIEW, SHOW VIEW, TRIGGER ON #{n['name']}.* TO #{n['user']}@'%' WITH GRANT OPTION;\""
        action :run
        ignore_failure true
      end

      # flush mysql privs if any are changed
      execute "mysql-flush-privs" do
        command "mysql -u root  -r -B -N -e \"FLUSH PRIVILEGES;\""
        action :run
      end

    end
  end
end

bash 'character-set' do
  code " mysql -u root -e 'ALTER DATABASE #{node['db']['mysql-dev']['name']} CHARACTER SET utf8 COLLATE utf8_general_ci;'"
end

if "mysql-development".include? node.chef_environment
  template "/etc/my.cnf" do
    mode '0644'
    source 'my-dev.conf.erb'
  end
else
  template "/etc/my.cnf" do
    mode '0644'
    source 'my-test.conf.erb'
  end  
end