mysql::bindings
: Parent class for MySQL bindings.mysql::client
: Installs and configures the MySQL client.mysql::server
: Installs and configures the MySQL server.mysql::server::backup
: Create and manage a MySQL backup.mysql::server::monitor
: This is a helper class to add a monitoring user to the databasemysql::server::mysqltuner
: Manage the MySQLTuner package.
mysql::backup::mysqlbackup
: Manage the mysqlbackup client.mysql::backup::mysqldump
: "Provider" for mysqldumpmysql::backup::xtrabackup
: "Provider" for Percona XtraBackupmysql::bindings::client_dev
: Private class for installing client development bindingsmysql::bindings::daemon_dev
: Private class for installing daemon development bindingsmysql::bindings::java
: Private class for installing java language bindings.mysql::bindings::perl
: Private class for installing perl language bindings.mysql::bindings::php
: Private class for installing php language bindingsmysql::bindings::python
: Private class for installing python language bindingsmysql::bindings::ruby
: Private class for installing ruby language bindingsmysql::client::install
: Private class for MySQL client install.mysql::params
: Params class.mysql::server::account_security
: Private class for ensuring localhost accounts do not existmysql::server::binarylog
: Binary log configuration requires the mysql user to be present. This must be done after package installmysql::server::config
: Private class for MySQL server configuration.mysql::server::install
: Private class for managing MySQL package.mysql::server::installdb
: Builds initial databases on installation.mysql::server::providers
: Convenience class to call each of the three providers with the corresponding hashes provided in mysql::server.mysql::server::root_password
: Private class for managing the root passwordmysql::server::service
: Private class for managing the MySQL service
mysql::db
: Create and configure a MySQL database.
mysql_plugin
: Manage MySQL plugins.
mysql_database
: Manage a MySQL database.mysql_datadir
: Manage MySQL datadirs with mysql_install_db OR mysqld (5.7.6 and above).mysql_grant
: Manage a MySQL user's rights.mysql_user
: Manage a MySQL user. This includes management of users password as well as privileges.
mysql_deepmerge
: Recursively merges two or more hashes together and returns the resulting hash.mysql_dirname
: Returns the dirname of a pathmysql_password
: Hash a string as mysql's "PASSWORD()" function would do itmysql_strip_hash
: TEMPORARY FUNCTION: EXPIRES 2014-03-10 When given a hash this function strips out all blank entries.
Parent class for MySQL bindings.
class { 'mysql::bindings':
ruby_enable => true,
ruby_package_ensure => 'present',
ruby_package_name => 'ruby-mysql-2.7.1-1mdv2007.0.sparc.rpm',
ruby_package_provider => 'rpm',
}
The following parameters are available in the mysql::bindings
class.
Data type: Any
Passes install_options
array to managed package resources. You must pass the appropriate options for the package manager(s).
Default value: undef
Data type: Any
Specifies whether ::mysql::bindings::java
should be included. Valid values are true
, false
.
Default value: false
Data type: Any
Specifies whether mysql::bindings::perl
should be included. Valid values are true
, false
.
Default value: false
Data type: Any
Specifies whether mysql::bindings::php
should be included. Valid values are true
, false
.
Default value: false
Data type: Any
Specifies whether mysql::bindings::python
should be included. Valid values are true
, false
.
Default value: false
Data type: Any
Specifies whether mysql::bindings::ruby
should be included. Valid values are true
, false
.
Default value: false
Data type: Any
Specifies whether ::mysql::bindings::client_dev
should be included. Valid values are true
', false
.
Default value: false
Data type: Any
Specifies whether ::mysql::bindings::daemon_dev
should be included. Valid values are true
, false
.
Default value: false
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if java_enable => true
.
Default value: $mysql::params::java_package_ensure
Data type: Any
The name of the Java package to install. Only applies if java_enable => true
.
Default value: $mysql::params::java_package_name
Data type: Any
The provider to use to install the Java package. Only applies if java_enable => true
.
Default value: $mysql::params::java_package_provider
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if perl_enable => true
.
Default value: $mysql::params::perl_package_ensure
Data type: Any
The name of the Perl package to install. Only applies if perl_enable => true
.
Default value: $mysql::params::perl_package_name
Data type: Any
The provider to use to install the Perl package. Only applies if perl_enable => true
.
Default value: $mysql::params::perl_package_provider
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if php_enable => true
.
Default value: $mysql::params::php_package_ensure
Data type: Any
The name of the PHP package to install. Only applies if php_enable => true
.
Default value: $mysql::params::php_package_name
Data type: Any
The provider to use to install the PHP package. Only applies if php_enable => true
.
Default value: $mysql::params::php_package_provider
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if python_enable => true
.
Default value: $mysql::params::python_package_ensure
Data type: Any
The name of the Python package to install. Only applies if python_enable => true
.
Default value: $mysql::params::python_package_name
Data type: Any
The provider to use to install the Python package. Only applies if python_enable => true
.
Default value: $mysql::params::python_package_provider
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if ruby_enable => true
.
Default value: $mysql::params::ruby_package_ensure
Data type: Any
The name of the Ruby package to install. Only applies if ruby_enable => true
.
Default value: $mysql::params::ruby_package_name
Data type: Any
What provider should be used to install the package.
Default value: $mysql::params::ruby_package_provider
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if client_dev => true
.
Default value: $mysql::params::client_dev_package_ensure
Data type: Any
The name of the client_dev package to install. Only applies if client_dev => true
.
Default value: $mysql::params::client_dev_package_name
Data type: Any
The provider to use to install the client_dev package. Only applies if client_dev => true
.
Default value: $mysql::params::client_dev_package_provider
Data type: Any
Whether the package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Only applies if daemon_dev => true
.
Default value: $mysql::params::daemon_dev_package_ensure
Data type: Any
The name of the daemon_dev package to install. Only applies if daemon_dev => true
.
Default value: $mysql::params::daemon_dev_package_name
Data type: Any
The provider to use to install the daemon_dev package. Only applies if daemon_dev => true
.
Default value: $mysql::params::daemon_dev_package_provider
Installs and configures the MySQL client.
class {'::mysql::client':
package_name => 'mysql-client',
package_ensure => 'present',
bindings_enable => true,
}
The following parameters are available in the mysql::client
class.
Data type: Any
Whether to automatically install all bindings. Valid values are true
, false
. Default to false
.
Default value: $mysql::params::bindings_enable
Data type: Any
Array of install options for managed package resources. You must pass the appropriate options for the package manager.
Default value: undef
Data type: Any
Whether the MySQL package should be present, absent, or a specific version. Valid values are 'present', 'absent', or 'x.y.z'.
Default value: $mysql::params::client_package_ensure
Data type: Any
Whether to manage the MySQL client package. Defaults to true
.
Default value: $mysql::params::client_package_manage
Data type: Any
The name of the MySQL client package to install.
Default value: $mysql::params::client_package_name
Installs and configures the MySQL server.
class { '::mysql::server':
package_name => 'mysql-server',
package_ensure => '5.7.1+mysql~trusty',
root_password => 'strongpassword',
remove_default_accounts => true,
}
The following parameters are available in the mysql::server
class.
Data type: Any
The location, as a path, of the MySQL configuration file.
Default value: $mysql::params::config_file
Data type: Any
The location, as a path, of !includedir for custom configuration overrides.
Default value: $mysql::params::includedir
Data type: Any
Passes install_options array to managed package resources. You must pass the appropriate options for the specified package manager
Default value: undef
Data type: Any
Path to secret file containing temporary root password.
Default value: $mysql::params::install_secret_file
Data type: Any
Whether the MySQL configuration file should be managed. Valid values are true
, false
. Defaults to true
.
Default value: $mysql::params::manage_config_file
Data type: Any
Specifies override options to pass into MySQL. Structured like a hash in the my.cnf file: See above for usage details.
Default value: {}
Data type: Any
Whether the package exists or should be a specific version. Valid values are 'present', 'absent', or 'x.y.z'. Defaults to 'present'.
Default value: $mysql::params::server_package_ensure
Data type: Any
Whether to manage the MySQL server package. Defaults to true
.
Default value: $mysql::params::server_package_manage
Data type: Any
The name of the MySQL server package to install.
Default value: $mysql::params::server_package_name
Data type: Any
Whether the includedir
directory should be purged. Valid values are true
, false
. Defaults to false
.
Default value: $mysql::params::purge_conf_dir
Data type: Any
Specifies whether to automatically include mysql::server::account_security
. Valid values are true
, false
. Defaults to false
.
Default value: false
Data type: Any
Whether the service should be restarted when things change. Valid values are true
, false
. Defaults to false
.
Default value: $mysql::params::restart
Data type: Any
The name of the group used for root. Can be a group name or a group ID. See more about the group.
Default value: $mysql::params::root_group
Data type: Any
The name of the group of the MySQL daemon user. Can be a group name or a group ID. See more about the group.
Default value: $mysql::params::mysql_group
Data type: Any
The MySQL root password. Puppet attempts to set the root password and update /root/.my.cnf
with it. This is required if create_root_user
or create_root_my_cnf
are true. If root_password
is 'UNSET', then create_root_user
and create_root_my_cnf
are assumed to be false --- that is, the MySQL root user and /root/.my.cnf
are not created. Password changes are supported; however, the old password must be set in /root/.my.cnf
. Effectively, Puppet uses the old password, configured in /root/my.cnf
, to set the new password in MySQL, and then updates /root/.my.cnf
with the new password.
Default value: $mysql::params::root_password
Data type: Any
Specifies whether the service should be enabled. Valid values are true
, false
. Defaults to true
.
Default value: $mysql::params::server_service_enabled
Data type: Any
Specifies whether the service should be managed. Valid values are true
, false
. Defaults to true
.
Default value: $mysql::params::server_service_manage
Data type: Any
The name of the MySQL server service. Defaults are OS dependent, defined in 'params.pp'.
Default value: $mysql::params::server_service_name
Data type: Any
The provider to use to manage the service. For Ubuntu, defaults to 'upstart'; otherwise, default is undefined.
Default value: $mysql::params::server_service_provider
Data type: Any
Whether root user should be created. Valid values are true
, false
. Defaults to true
. This is useful for a cluster setup with Galera. The root user has to be created only once. You can set this parameter true on one node and set it to false on the remaining nodes.
Default value: $mysql::params::create_root_user
Data type: Any
Whether to create /root/.my.cnf
. Valid values are true
, false
. Defaults to true
. create_root_my_cnf
allows creation of /root/.my.cnf
independently of create_root_user
. You can use this for a cluster setup with Galera where you want /root/.my.cnf
to exist on all nodes.
Default value: $mysql::params::create_root_my_cnf
Data type: Any
Optional hash of users to create, which are passed to mysql_user.
Default value: {}
Data type: Any
Optional hash of grants, which are passed to mysql_grant.
Default value: {}
Data type: Any
Optional hash of databases to create, which are passed to mysql_database.
Default value: {}
Data type: Any
Deprecated
Default value: undef
Data type: Any
Deprecated
Default value: undef
Data type: Any
This parameter no longer does anything. It exists only for backwards compatibility. See the root_password
parameter above for details on changing the root password.
Default value: undef
Create and manage a MySQL backup.
class { 'mysql::server':
root_password => 'password'
}
class { 'mysql::server::backup':
backupuser => 'myuser',
backuppassword => 'mypassword',
backupdir => '/tmp/backups',
}
The following parameters are available in the mysql::server::backup
class.
Data type: Any
MySQL user with backup administrator privileges.
Default value: undef
Data type: Any
Password for backupuser
.
Default value: undef
Data type: Any
Directory to store backup.
Default value: undef
Data type: Any
Permissions applied to the backup directory. This parameter is passed directly to the file resource.
Default value: '0700'
Data type: Any
Owner for the backup directory. This parameter is passed directly to the file resource.
Default value: 'root'
Data type: Any
Group owner for the backup directory. This parameter is passed directly to the file resource.
Default value: 'root'
Data type: Any
Whether or not to compress the backup (when using the mysqldump provider)
Default value: true
Data type: Any
Backup rotation interval in 24 hour periods.
Default value: 30
Data type: Any
Ignore the mysql.event table.
Default value: true
Data type: Any
Whether to delete old .sql files before backing up. Setting to true deletes old files before backing up, while setting to false deletes them after backup.
Default value: false
Data type: Any
Databases to backup (if using xtrabackup provider).
Default value: []
Data type: Any
Use file per database mode creating one file per database backup.
Default value: false
Data type: Any
Dump stored routines (procedures and functions) from dumped databases when doing a file_per_database
backup.
Default value: false
Data type: Any
Dump triggers for each dumped table when doing a file_per_database
backup.
Default value: false
Data type: Any
Default value: 'present'
Data type: Any
An array of two elements to set the backup time. Allows ['23', '5'] (i.e., 23:05) or ['3', '45'] (i.e., 03:45) for HH:MM times.
Default value: ['23', '5']
Data type: Any
A script that is executed before the backup begins.
Default value: false
Data type: Any
A script that is executed when the backup is finished. This could be used to sync the backup to a central store. This script can be either a single line that is directly executed or a number of lines supplied as an array. It could also be one or more externally managed (executable) files.
Default value: false
Data type: Any
Allows you to set a custom PATH should your MySQL installation be non-standard places. Defaults to /usr/bin:/usr/sbin:/bin:/sbin
.
Default value: '/usr/bin:/usr/sbin:/bin:/sbin'
Data type: Any
Sets the server backup implementation. Valid values are:
Default value: 'mysqldump'
Data type: Any
Defines the maximum SQL statement size for the backup dump script. The default value is 1MB, as this is the default MySQL Server value.
Default value: '1M'
Data type: Any
Specifies an array of optional arguments which should be passed through to the backup tool. (Currently only supported by the xtrabackup provider.)
Default value: []
This is a helper class to add a monitoring user to the database
The following parameters are available in the mysql::server::monitor
class.
Data type: Any
The username to create for MySQL monitoring.
Default value: ''
Data type: Any
The password to create for MySQL monitoring.
Default value: ''
Data type: Any
The hostname from which the monitoring user requests are allowed access.
Default value: ''
Manage the MySQLTuner package.
The following parameters are available in the mysql::server::mysqltuner
class.
Data type: Any
Ensures that the resource exists. Valid values are 'present', 'absent'. Defaults to 'present'.
Default value: 'present'
Data type: Any
The version to install from the major/MySQLTuner-perl github repository. Must be a valid tag. Defaults to 'v1.3.0'.
Default value: 'v1.3.0'
Data type: Any
Source path for the mysqltuner package.
Default value: undef
Data type: Any
Environment variables active during download, e.g. to download via proxies: environment => 'https_proxy=http://proxy.example.com:80'
Default value: undef
Create and configure a MySQL database.
mysql::db { 'mydb':
user => 'myuser',
password => 'mypass',
host => 'localhost',
grant => ['SELECT', 'UPDATE'],
}
The following parameters are available in the mysql::db
defined type.
Data type: Any
The user for the database you're creating.
Data type: Any
The password for $user for the database you're creating.
Data type: Any
The name of the database to create.
Default value: $name
Data type: Any
The character set for the database.
Default value: 'utf8'
Data type: Any
The collation for the database.
Default value: 'utf8_general_ci'
Data type: Any
The host to use as part of user@host for grants.
Default value: 'localhost'
Data type: Any
The privileges to be granted for user@host on the database.
Default value: 'ALL'
Data type: Optional[Variant[Array, Hash, String]]
The path to the sqlfile you want to execute. This can be single file specified as string, or it can be an array of strings.
Default value: undef
Data type: Any
Specifies whether executing the sqlfiles should happen on every run. If set to false, sqlfiles only run once.
Default value: false
Data type: Enum['absent', 'present']
Specifies whether to create the database. Valid values are 'present', 'absent'. Defaults to 'present'.
Default value: 'present'
Data type: Any
Timeout, in seconds, for loading the sqlfiles. Defaults to 300.
Default value: 300
Data type: Any
Command to read the sqlfile for importing the database. Useful for compressed sqlfiles. For example, you can use 'zcat' for .gz files.
Default value: 'cat'
Manage MySQL plugins.
mysql_plugin { 'some_plugin':
soname => 'some_pluginlib.so',
}
The following properties are available in the mysql_plugin
type.
Valid values: present, absent
The basic property that the resource should be in.
Default value: present
Valid values: %r{^\w+.\w+$}
The name of the library
The following parameters are available in the mysql_plugin
type.
namevar
The name of the MySQL plugin to manage.
Type: Ruby 3.x API
- When there is a duplicate key that is a hash, they are recursively merged.
- When there is a duplicate key that is not a hash, the key in the rightmost hash will "win."
- When there are conficting uses of dashes and underscores in two keys (which mysql would otherwise equate), the rightmost style will win.
- When there is a duplicate key that is a hash, they are recursively merged.
- When there is a duplicate key that is not a hash, the key in the rightmost hash will "win."
- When there are conficting uses of dashes and underscores in two keys (which mysql would otherwise equate), the rightmost style will win.
Returns: Hash
Type: Ruby 3.x API
Returns the dirname of a path
Returns: String
Directory name of path.
Data type: String
Path to find the dirname for.
Type: Ruby 3.x API
Hash a string as mysql's "PASSWORD()" function would do it
Returns: String
the mysql password hash from the clear text password.
Data type: String
Plain text password.
Type: Ruby 3.x API
TEMPORARY FUNCTION: EXPIRES 2014-03-10 When given a hash this function strips out all blank entries.
TEMPORARY FUNCTION: EXPIRES 2014-03-10 When given a hash this function strips out all blank entries.
Returns: Any
Allows you to backup your database to local file.
Supports noop? false
Data type: Optional[String[1]]
Database to connect to
Data type: Optional[String[1]]
The user
Data type: Optional[String[1]]
The password
Data type: String[1]
Path to file you want backup to
Allows you to execute arbitary SQL
Supports noop? false
Data type: Optional[String[1]]
Database to connect to
Data type: Optional[String[1]]
The user
Data type: Optional[String[1]]
The password
Data type: String[1]
The SQL you want to execute