mysql Operations¶
Manage MySQL databases, users and privileges.
Requires the mysql CLI executable on the target host(s).
All operations in this module take four optional arguments:
+ mysql_user: the username to connect to mysql to
+ mysql_password: the password for the connecting user
+ mysql_host: the hostname of the server to connect to
+ mysql_port: the port of the server to connect to
See the example/mysql.py
Facts used in these operations: mysql.MysqlDatabases, mysql.MysqlUserGrants, mysql.MysqlUsers.
mysql.database¶
mysql.database(
database: 'str',
present: 'bool' = True,
collate: 'str | None' = None,
charset: 'str | None' = None,
user: 'str | None' = None,
user_hostname: 'str' = 'localhost',
user_privileges: 'str | list[str]' = 'ALL',
mysql_user: 'str | None' = None,
mysql_password: 'str | None' = None,
mysql_host: 'str | None' = None,
mysql_port: 'int | None' = None,
**kwargs,
)
Global arguments
This operation also inherits all global arguments.
mysql.dump¶
Stateless operation
This operation will always execute commands and is not idempotent.
Dump a MySQL database into a .sql file. Requires mysqldump.
mysql.dump(
dest: 'str',
database: 'str | None' = None,
mysql_user: 'str | None' = None,
mysql_password: 'str | None' = None,
mysql_host: 'str | None' = None,
mysql_port: 'int | None' = None,
**kwargs,
)
- dest: name of the file to dump the SQL to
- database: name of the database to dump
- mysql_*: global module arguments, see above
Example:
mysql.dump(
name="Dump the pyinfra_stuff database",
dest="/tmp/pyinfra_stuff.dump",
database="pyinfra_stuff",
)
Global arguments
This operation also inherits all global arguments.
mysql.load¶
Stateless operation
This operation will always execute commands and is not idempotent.
Load .sql file into a database.
mysql.load(
src: 'str',
database: 'str | None' = None,
mysql_user: 'str | None' = None,
mysql_password: 'str | None' = None,
mysql_host: 'str | None' = None,
mysql_port: 'int | None' = None,
**kwargs,
)
- src: the filename to read from
- database: name of the database to import into
- mysql_*: global module arguments, see above
Example:
mysql.load(
name="Import the pyinfra_stuff dump into pyinfra_stuff_copy",
src="/tmp/pyinfra_stuff.dump",
database="pyinfra_stuff_copy",
)
Global arguments
This operation also inherits all global arguments.
mysql.privileges¶
Add/remove MySQL privileges for a user, either global, database or table specific.
mysql.privileges(
user: 'str',
privileges: 'str | list[str] | set[str]',
user_hostname='localhost',
database='*',
table='*',
flush=True,
with_grant_option=False,
mysql_user: 'str | None' = None,
mysql_password: 'str | None' = None,
mysql_host: 'str | None' = None,
mysql_port: 'int | None' = None,
**kwargs,
)
- user: name of the user to manage privileges for
- privileges: list of privileges the user should have (see also:
with_grant_optionargument) - user_hostname: the hostname of the user
- database: name of the database to grant privileges to (defaults to all)
- table: name of the table to grant privileges to (defaults to all)
- flush: whether to flush (and update) the privileges table after any changes
- with_grant_option: whether the grant option privilege should be set
- mysql_*: global module arguments, see above
Global arguments
This operation also inherits all global arguments.
mysql.sql¶
Stateless operation
This operation will always execute commands and is not idempotent.
Execute arbitrary SQL against MySQL.
mysql.sql(
sql: 'str',
database: 'str | None' = None,
mysql_user: 'str | None' = None,
mysql_password: 'str | None' = None,
mysql_host: 'str | None' = None,
mysql_port: 'int | None' = None,
**kwargs,
)
- sql: SQL command(s) to execute
- database: optional database to open the connection with
- mysql_*: global module arguments, see above
Global arguments
This operation also inherits all global arguments.
mysql.user¶
mysql.user(
user: 'str',
present: 'bool' = True,
user_hostname: 'str' = 'localhost',
password: 'str | None' = None,
privileges: 'str | list[str] | None' = None,
require: 'str | None' = None,
require_cipher: 'str | None' = None,
require_issuer: 'str | None' = None,
require_subject: 'str | None' = None,
max_connections: 'int | None' = None,
max_queries_per_hour: 'int | None' = None,
max_updates_per_hour: 'int | None' = None,
max_connections_per_hour: 'int | None' = None,
mysql_user: 'str | None' = None,
mysql_password: 'str | None' = None,
mysql_host: 'str | None' = None,
mysql_port: 'int | None' = None,
**kwargs,
)
Global arguments
This operation also inherits all global arguments.