Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status

RSS

mysql (185) Versions 5.4.4

Provides mysql_service, mysql_config, and mysql_client resources

Policyfile
Berkshelf
Knife
cookbook 'mysql', '= 5.4.4', :supermarket
cookbook 'mysql', '= 5.4.4'
knife supermarket install mysql
knife supermarket download mysql
README
Dependencies
Changelog
Quality -%

MySQL cookbook

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.

Scope

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.

Requirements

  • Chef 11 or higher
  • Ruby 1.9 (preferably from the Chef full-stack installer)

Resources

The resources that ship in this cookbook are examples of 'singleton
resources'. This means that there can only be one instance of them
configured on a machine. The providers that handle the implementation
of the mysql_service and mysql_client resources do so by following
platform native idioms. These usually only allow for one instance of a
service to be running at a given time.

mysql_service

The mysql_service resource configures the basic plumbing
needed to run a simple mysql_service with a minimal configuration.

Please note that when using notifies or subscribes, the resource
is mysql_service. This means that this cookbook does not setup
service[mysql].

Example

mysql_service 'default' do
  version '5.1'
  port '3307'
  data_dir '/data'
  template_source 'custom.erb'
  allow_remote_root true
  root_network_acl ['10.9.8.7/6', '1.2.3.4/5']
  remove_anonymous_users false
  remove_test_database false
  server_root_password 'decrypt_me_from_a_databag_maybe'
  server_repl_password 'sync_me_baby_one_more_time'
  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 allow_remote_root parameter allows the user to specify whether
remote connections from the mysql root user. When set to true, it is
recommended that it be used in combination with the root_network_acl
parameter. When omitted, it will default to false.

The remove_anonymous_users parameter allows the user to remove
anonymous users often installed by default with during the mysql db
initialization. When omitted, it defaults to true.

The remove_test_database parameter allows the user to specify
whether or not the test database is removed. When omitted, it defaults
to true.

The root_network_acl parameter allows the user to specify a list of
subnets to accept connections for the root user from. When omitted, it
defaults to none.

The server_root_password parameter allows the user to specify the
root password for the mysql database. This can be set explicitly in a
recipe, driven from a node attribute, or from data_bags. When omitted,
it defaults to ilikerandompasswords. Please be sure to change it.

The server_debian_password parameter allows the user to specify the
debian-sys-maint users password, used in log rotations and service
management on Debian and Debian derived platforms.

The server_repl_password parameter allows the user to specify the
password used by 'repl'@'%', used in clustering scenarios. When
omitted, it does not create the repl user or set a password.

The mysql_service resource supports :create, :restart, and :reload actions.

mysql_client

The mysql_client resource installs or removes the MySQL client binaries and
development libraries

Recipes

mysql::server

This recipe calls a mysql_service resource, passing parameters
from node attributes.

mysql::client

This recipe calls a mysql_client resource, with action :create

Usage

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.

run_list

Include 'recipe[mysql::server]' or 'recipe[mysql::client]' in your run_list.

Wrapper cookbook

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

Used directly in a recipe

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

Attributes

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

License & Authors

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.

=)

Dependent cookbooks

yum-mysql-community >= 0.0.0

Contingent cookbooks

aegir Applicable Versions
aegir2 Applicable Versions
aegir3 Applicable Versions
agilefant Applicable Versions
alfresco Applicable Versions
alfresco-db Applicable Versions
automysqlbackup Applicable Versions
bacula Applicable Versions
bacula-backup Applicable Versions
bamboo Applicable Versions
boilerplate Applicable Versions
boxbilling Applicable Versions
bricks Applicable Versions
cacti Applicable Versions
cakephp Applicable Versions
cg_mysql Applicable Versions
chef_jira Applicable Versions
cloudstack Applicable Versions
cloudstack_wrapper Applicable Versions
config-driven-helper Applicable Versions
configure_and_deploy_ssc Applicable Versions
confluence Applicable Versions
coopr Applicable Versions
crowd Applicable Versions
cyclesafe_chef Applicable Versions
database Applicable Versions
database_restore Applicable Versions
databox Applicable Versions
druid-example Applicable Versions
drupal Applicable Versions
drupal-cookbook Applicable Versions
drupalbaseplus Applicable Versions
dvwa Applicable Versions
elefant Applicable Versions
eulipion-cleanspeak Applicable Versions
fanfare Applicable Versions
ff_sync Applicable Versions
flyway Applicable Versions
fog Applicable Versions
foreman Applicable Versions
frog Applicable Versions
frontaccounting Applicable Versions
gallery Applicable Versions
gerrit Applicable Versions
gitlab Applicable Versions
gitlab-server Applicable Versions
gitlabhq Applicable Versions
gitorious Applicable Versions
gotcms Applicable Versions
guardian Applicable Versions
hollandbackup Applicable Versions
huginn Applicable Versions
iptables_web Applicable Versions
ish Applicable Versions
ish_mediawiki Applicable Versions
jahia Applicable Versions
jira Applicable Versions
laravel Applicable Versions
lxmpbox Applicable Versions
madhucookbook Applicable Versions
magento Applicable Versions
mattermost Applicable Versions
mediawiki Applicable Versions
mineos Applicable Versions
mroonga Applicable Versions
mw_mysql Applicable Versions
myface Applicable Versions
mysql-chef_gem Applicable Versions
mysql-hardening Applicable Versions
mysql-multi Applicable Versions
mysql-replication Applicable Versions
mysql-test-schema Applicable Versions
mysql2_chef_gem Applicable Versions
mysql_charset Applicable Versions
mysql_chef_gem Applicable Versions
mysql_logrotate Applicable Versions
mysql_role Applicable Versions
mysql_tuning Applicable Versions
mythtv Applicable Versions
myusa Applicable Versions
nodestack Applicable Versions
ohmage Applicable Versions
open-build-service Applicable Versions
opencart Applicable Versions
openstack-common Applicable Versions
openstack-mistral Applicable Versions
openstack-ops-database Applicable Versions
opsview Applicable Versions
orchestrator Applicable Versions
owncloud Applicable Versions
pagekit Applicable Versions
pdns Applicable Versions
petals Applicable Versions
phabricator Applicable Versions
php Applicable Versions
phpbb Applicable Versions
phpstack Applicable Versions
pinba Applicable Versions
piwik Applicable Versions
postfixadmin Applicable Versions
prestashop Applicable Versions
pvpgn Applicable Versions
pythonstack Applicable Versions
q2a Applicable Versions
rackmonkey Applicable Versions
radiant Applicable Versions
redmine Applicable Versions
redmine2 Applicable Versions
roundcube Applicable Versions
ruby-env-cookbook Applicable Versions
rubycas Applicable Versions
seafile Applicable Versions
shaybtest Applicable Versions
singularity Applicable Versions
sphinx Applicable Versions
spree Applicable Versions
sptoolkit Applicable Versions
stack_commons Applicable Versions
stackstorm Applicable Versions
stash Applicable Versions
sugar_crm Applicable Versions
sugarcrm Applicable Versions
sugarcrm-ce Applicable Versions
sugarcrm_ce Applicable Versions
symfony Applicable Versions
tango Applicable Versions
teampass Applicable Versions
testswarm Applicable Versions
tungsten Applicable Versions
vicnum Applicable Versions
wordpress Applicable Versions
wordpress-windows Applicable Versions
zabbix Applicable Versions
zabbix2 Applicable Versions
zabbix_lwrp Applicable Versions
zarafa Applicable Versions
zenoss Applicable Versions
zf2 Applicable Versions

mysql Cookbook CHANGELOG

This file is used to list changes made in each version of the mysql cookbook.

v5.4.4 (2014-08-27)

  • Changing module namespace to MysqlCookbook

v5.4.3 (2014-08-25)

  • More refactoring. Moving helper function bits into resource parsed_parameters

v5.4.2 (2014-08-25)

  • Moving provider local variables into definitions for RHEL provider

v5.4.1 (2014-08-25)

  • Refactoring resources into the LWRP style with parsed parameters
  • Moving provider local variables into definitions

v5.4.0 (2014-08-25)

  • #212 - support for centos-7 (mysql55 and mysql56)
  • Adding (untested) Debian-6 support
  • Adding Suse support to metadata.rb
  • Adding ability to change MySQL root password
  • Added libmysqlclient-devel package to SuSE client provider
  • Appeasing AppArmor
  • Reducing duplication in client provider

v5.3.6 (2014-06-18)

  • Fixing pid path location. Updating tests to include real RHEL

v5.3.4 (2014-06-16)

  • Fixing specs for Amazon Linux server package names

v5.3.2 (2014-06-16)

  • Fixing Amazon Linux support

v5.3.0 (2014-06-11)

  • #189 - Fix server_repl_password description
  • #191 - Adding support for server55 and server56 on el-6
  • #193 - Fix syntax in mysql_service example
  • #199 - Adding Suse support

v5.2.12 (2014-05-19)

PR #192 - recipes/server.rb should honor parameter node['mysql']['version']

v5.2.10 (2014-05-15)

  • COOK-4394 - restore freebsd support

v5.2.8 (2014-05-15)

  • [COOK-4653] - Missing mySQL 5.6 support for Ubuntu 14.04

v5.2.6 (2014-05-07)

  • [COOK-4625] - Fix password resource parameter consumption on Debian and Ubuntu
  • Fix up typos and version numbers in PLATFORMS.md
  • Fix up specs from COOK-4613 changes

v5.2.4 (2014-05-02)

  • [COOK-4613] - Fix permissions on mysql data_dir to allow global access to mysql.sock

v5.2.2 (2014-04-24)

  • [COOK-4564] - Using positive tests for datadir move

v5.2.0 (2014-04-22)

  • [COOK-4551] - power grants.sql from resource parameters

v5.1.12 (2014-04-21)

  • [COOK-4554] - Support for Debian Sid

v5.1.10 (2014-04-21)

  • [COOK-4565] Support for Ubuntu 14.04
  • [COOK-4565] Adding Specs and TK platform
  • Removing non-LTS 13.10 specs and TK platform

v5.1.8 (2014-04-12)

Adding Ubuntu 13.04 to Platforminfo

v5.1.6 (2014-04-11)

  • [COOK-4548] - Add template[/etc/mysql/debian.cnf] to Ubuntu provider

v5.1.4 (2014-04-11)

  • [COOK-4547] - Shellescape server_root_password

v5.1.2 (2014-04-09)

  • [COOK-4519] - Fix error in run_dir for Ubuntu
  • [COOK-4531] - Fix pid and run_dir for Debian

v5.1.0 (2014-04-08)

[COOK-4523] - Allow for both :restart and :reload

v5.0.6 (2014-04-07)

  • [COOK-4519] - Updating specs to reflect pid file change on Ubuntu

v5.0.4 (2014-04-07)

  • [COOK-4519] - Fix path to pid file on Ubuntu

v5.0.2 (2014-04-01)

  • Moving server_deprecated into recipes directory

v5.0.0 (2014-03-31)

  • Rewriting as a library cookbook
  • Exposing mysql_service and mysql_client resources
  • User now needs to supply configuration
  • Moving attribute driven recipe to server-deprecated

v4.1.2 (2014-02-28)

  • [COOK-4349] - Fix invalid platform check
  • [COOK-4184] - Better handling of Ubuntu upstart service
  • [COOK-2100] - Changing innodb_log_file_size tunable results in inability to start MySQL

v4.1.1 (2014-02-25)

  • **[COOK-2966] - Address foodcritic failures'
  • **[COOK-4182] - Template parse failure in /etc/init/mysql.conf (data_dir)'
  • **[COOK-4198] - Added missing tunable'
  • **[COOK-4206] - create root@127.0.0.1, as well as root@localhost'

v4.0.20 (2014-01-18)

  • [COOK-3931] - MySQL Server Recipe Regression for Non-LTS Ubuntu Versions
  • [COOK-3945] - MySQL cookbook fails on Ubuntu 13.04/13.10
  • [COOK-3966] - mysql::server recipe can't find a template with debian 7.x
  • [COOK-3985] - Missing /etc/mysql/debian.cnf template on mysql::_server_debian.rb recipe (mysql 4.0.4)
  • [COOK-3974] - debian.cnf not updated
  • [COOK-4001] - Pull request: Fixes for broken mysql::server on Debian
  • [COOK-4071] - Mysql cookbook doesn't work on debian 7.2

v4.0.14

Fixing style cops

v4.0.12

Bug

Improvement

  • COOK-3801 - Add innodb_adaptive_flushing_method and innodb_adaptive_checkpoint

v4.0.10

fixing metadata version error. locking to 3.0

v4.0.8

Locking yum dependency to '< 3'

v4.0.6

Bug

  • [COOK-3943] Notifying service restart on grants update

v4.0.4

[COOK-3952] - Adding 'recursive true' to directory resources

v4.0.2

BUGS

  • Adding support for Amazon Linux in attributes/server_rhel.rb
  • Fixing bug where unprivileged users cannot connect over a local socket. Adding integration test.
  • Fixing bug in mysql_grants_cmd generation

v4.0.0

  • [COOK-3928] Heavily refactoring for readability. Moving platform implementation into separate recipes
  • Moving integration tests from minitest to serverspec, removing "improper" tests
  • Moving many attributes into the ['mysql']['server']['whatever'] namespace
  • [COOK-3481] - Merged Lucas Welsh's Windows bits and moved into own recipe
  • [COOK-3697] - Adding security hardening attributes
  • [COOK-3780] - Fixing data_dir on Debian and Ubuntu
  • [COOK-3807] - Don't use execute[assign-root-password] on Debian and Ubuntu
  • [COOK-3881] - Fixing /etc being owned by mysql user

v3.0.12

Bug

  • COOK-3752 - mysql service fails to start in mysql::server recipe

v3.0.10

  • Fix a failed release attempt for v3.0.8

v3.0.8

Bug

  • COOK-3749 - Fix a regression with Chef 11-specific features

v3.0.6

Bug

  • COOK-3674 - Fix an issue where the MySQL server fails to set the root password correctly when data_dir is a non-default value
  • COOK-3647 - Fix README typo (databas => database)
  • COOK-3477 - Fix log-queries-not-using-indexes not working
  • COOK-3436 - Pull percona repo in compilation phase
  • COOK-3208 - Fix README typo (LitenPort => ListenPort)
  • COOK-3149 - Create my.cnf before installing
  • COOK-2681 - Fix log_slow_queries for 5.5+
  • COOK-2606 - Use proper bind address on cloud providers

Improvement

  • COOK-3498 - Add support for replicate_* variables in my.cnf

v3.0.4

Bug

  • COOK-3310 - Fix missing GRANT option
  • COOK-3233 - Fix escaping special characters
  • COOK-3156 - Fix GRANTS file when remote_root_acl is specified
  • COOK-3134 - Fix Chef 11 support
  • COOK-2318 - Remove redundant if block around node.mysql.tunable.log_bin

v3.0.2

Bug

  • [COOK-2158]: apt-get update is run twice at compile time
  • [COOK-2832]: mysql grants.sql file has errors depending on attrs
  • [COOK-2995]: server.rb is missing a platform_family comparison value

Sub-task

  • [COOK-2102]: innodb_flush_log_at_trx_commit value is incorrectly set based on CPU count

v3.0.0

Note This is a backwards incompatible version with previous versions of the cookbook. Tickets that introduce incompatibility are COOK-2615 and COOK-2617.

  • [COOK-2478] - Duplicate 'read_only' server attribute in base and tunable
  • [COOK-2471] - Add tunable to set slave_compressed_protocol for reduced network traffic
  • [COOK-1059] - Update attributes in mysql cookbook to support missing options for my.cnf usable by Percona
  • [COOK-2590] - Typo in server recipe to do with conf_dir and confd_dir
  • [COOK-2602] - Add lower_case_table_names tunable
  • [COOK-2430] - Add a tunable to create a network ACL when allowing remote_root_access
  • [COOK-2619] - mysql: isamchk deprecated
  • [COOK-2515] - Better support for SUSE distribution for mysql cookbook
  • [COOK-2557] - mysql::percona_repo attributes missing and key server typo
  • [COOK-2614] - Duplicate innodb_file_per_table
  • [COOK-2145] - MySQL cookbook should remove anonymous and password less accounts
  • [COOK-2553] - Enable include directory in my.cnf template for any platform
  • [COOK-2615] - Rename key_buffer to key_buffer_size
  • [COOK-2626] - Percona repo URL is being constructed incorrectly
  • [COOK-2616] - Unneeded attribute thread_cache
  • [COOK-2618] - myisam-recover not using attribute value
  • [COOK-2617] - open-files is a duplicate of open-files-limit

v2.1.2

  • [COOK-2172] - Mysql cookbook duplicates binlog_format configuration

v2.1.0

  • [COOK-1669] - Using platform("ubuntu") in default attributes always returns true
  • [COOK-1694] - Added additional my.cnf fields and reorganized cookbook to avoid race conditions with mysql startup and sql script execution
  • [COOK-1851] - Support server-id and binlog_format settings
  • [COOK-1929] - Update msyql server attributes file because setting attributes without specifying a precedence is deprecated
  • [COOK-1999] - Add read_only tunable useful for replication slave servers

v2.0.2

  • [COOK-1967] - mysql: trailing comma in server.rb platform family

v2.0.0

Important note for this release

Under Chef Solo, you must set the node attributes for the root, debian and repl passwords or the run will completely fail. See COOK-1737 for background on this.

  • [COOK-1390] - MySQL service cannot start after reboot
  • [COOK-1610] - Set root password outside preseed (blocker for drop-in mysql replacements)
  • [COOK-1624] - Mysql cookbook fails to even compile on windows
  • [COOK-1669] - Using platform("ubuntu") in default attributes always returns true
  • [COOK-1686] - Add mysql service start
  • [COOK-1687] - duplicate innodb_buffer_pool_size attribute
  • [COOK-1704] - mysql cookbook fails spec tests when minitest-handler cookbook enabled
  • [COOK-1737] - Fail a chef-solo run when server_root_password, server_debian_password, and/or server_repl_password is not set
  • [COOK-1769] - link to database recipe in mysql README goes to old opscode/cookbooks repo instead of opscode-cookbook organization
  • [COOK-1963] - use platform_family

v1.3.0

Important note for this release

This version no longer installs Ruby bindings in the client recipe by default. Use the ruby recipe if you'd like the RubyGem. If you'd like packages from your distribution, use them in your application's specific cookbook/recipe, or modify the client packages attribute. This resolves the following tickets:

  • COOK-932
  • COOK-1009
  • COOK-1384

Additionally, this cookbook now has tests (COOK-1439) for use under test-kitchen.

The following issues are also addressed in this release.

  • [COOK-1443] - MySQL (>= 5.1.24) does not support innodb_flush_method = fdatasync
  • [COOK-1175] - Add Mac OS X support
  • [COOK-1289] - handle additional tunable attributes
  • [COOK-1305] - add auto-increment-increment and auto-increment-offset attributes
  • [COOK-1397] - make the port an attribute
  • [COOK-1439] - Add MySQL cookbook tests for test-kitchen support
  • [COOK-1236] - Move package names into attributes to allow percona to free-ride
  • [COOK-934] - remove deprecated mysql/libraries/database.rb, use the database cookbook instead.
  • [COOK-1475] - fix restart on config change

v1.2.6

  • [COOK-1113] - Use an attribute to determine if upstart is used
  • [COOK-1121] - Add support for Windows
  • [COOK-1140] - Fix conf.d on Debian
  • [COOK-1151] - Fix server_ec2 handling /var/lib/mysql bind mount
  • [COOK-1321] - Document setting password attributes for solo

v1.2.4

  • [COOK-992] - fix FATAL nameerror
  • [COOK-827] - mysql:server_ec2 recipe can't mount data_dir
  • [COOK-945] - FreeBSD support

v1.2.2

  • [COOK-826] mysql::server recipe doesn't quote password string
  • [COOK-834] Add 'scientific' and 'amazon' platforms to mysql cookbook

v1.2.1

  • [COOK-644] Mysql client cookbook 'package missing' error message is confusing
  • [COOK-645] RHEL6/CentOS6 - mysql cookbook contains 'skip-federated' directive which is unsupported on MySQL 5.1

v1.2.0

  • [COOK-684] remove mysql_database LWRP

v1.0.8

  • [COOK-633] ensure "cloud" attribute is available

v1.0.7

  • [COOK-614] expose all mysql tunable settings in config
  • [COOK-617] bind to private IP if available

v1.0.6

  • [COOK-605] install mysql-client package on ubuntu/debian

v1.0.5

  • [COOK-465] allow optional remote root connections to mysql
  • [COOK-455] improve platform version handling
  • externalize conf_dir attribute for easier cross platform support
  • change datadir attribute to data_dir for consistency

v1.0.4

  • fix regressions on debian platform
  • [COOK-578] wrap root password in quotes
  • [COOK-562] expose all tunables in my.cnf

No quality metric results found