The MySQL cookbook exposes the mysql_service
and mysql_client
resources. These resources are utilized by the mysql::client
and mysql::server
recipes, or can be consumed in other recipes by
depending on the MySQL cookbook.
This cookbook does its best to follow platform native idioms at all times. This means things like logs, pid files, sockets, and service managers work "as expected" by an administrator familiar with a given platform.
This cookbook is concerned with the "MySQL Community Server", particularly those shipped with F/OSS Unix and Linux distributions. It does not address forks and value-added repackaged MySQL distributions like Drizzle, MariaDB, or Percona.
This cookbook does not try to encompass every single configuration option available for MySQL. Instead, it provides a "just enough" to get a MySQL server running, then allows the user to specify additional custom configuration.
- Chef 11 or higher
- Ruby 1.9 (preferably from the Chef full-stack installer)
The mysql_service
resource configures the basic plumbing
needed to run a simple mysql_service with a minimal configuration.
mysql_service 'default' do
version '5.1'
port '3307'
data_dir '/data'
template_source 'custom.erb'
action :create
end
The version
parameter will allow the user to select from the
versions available for the platform, where applicable. When omitted,
it will install the default MySQL version for the target platform.
Available version numbers are 5.0
, 5.1
, 5.5
, and 5.6
,
depending on platform. See PLATFORMS.md for details.
The port
parameter determines the listen port for the mysqld
service. When omitted, it will default to '3306'.
The data_dir
parameter determines where the actual data files are
kept on the machine. This is useful when mounting external storage.
When omitted, it will default to the platform's native location.
The template_source
parameter allows the user to override the
default minimal template used by the mysql_service
resource. When
omitted, it will select one shipped with the cookbook based on the
MySQL version.
The mysql_service resource supports :create, :restart, and :reload actions.
The mysql_client
resource installs or removes the MySQL client binaries and
development libraries
This recipe calls a mysql_service
resource, passing parameters
from node attributes.
This recipe calls a mysql_client
resource, with action :create
The mysql::server
recipe and mysql_service
resources are designed to
provide a minimal configuration. The default my.cnf
dropped off has
an !includedir
directive. Site-specific configuration should be
placed in the platform's native location.
Include 'recipe[mysql::server]'
or 'recipe[mysql::client]'
in your run_list.
node.set['mysql']['server_root_password'] = 'yolo'
node.set['mysql']['port'] = '3308'
node.set['mysql']['data_dir'] = '/data'
include_recipe 'mysql::server'
template '/etc/mysql/conf.d/mysite.cnf' do
owner 'mysql'
owner 'mysql'
source 'mysite.cnf.erb'
notifies :restart, 'mysql_service[default]'
end
template '/etc/mysql/conf.d/mysite.cnf' do
owner 'mysql'
owner 'mysql'
source 'mysite.cnf.erb'
notifies :restart, 'mysql_service[default]'
end
mysql_service 'default' do
version '5.5'
port '3307'
data_dir '/data'
template_source 'custom.erb'
action :create
end
default['mysql']['service_name'] = 'default'
default['mysql']['server_root_password'] = 'ilikerandompasswords'
default['mysql']['server_debian_password'] = 'postinstallscriptsarestupid'
default['mysql']['data_dir'] = '/var/lib/mysql'
default['mysql']['port'] = '3306'
### used in grants.sql
default['mysql']['allow_remote_root'] = false
default['mysql']['remove_anonymous_users'] = true
default['mysql']['root_network_acl'] = nil
- Author:: Joshua Timberman ([email protected])
- Author:: AJ Christensen ([email protected])
- Author:: Seth Chisamore ([email protected])
- Author:: Brian Bianco ([email protected])
- Author:: Jesse Howarth ([email protected])
- Author:: Andrew Crump ([email protected])
- Author:: Christoph Hartmann ([email protected])
- Author:: Sean OMeara ([email protected])
Copyright:: 2009-2014 Chef Software, Inc
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.