mysql_db – Добавление или удаление баз данных MySQL на удалённом хосте
Описание
- Добавление или удаление баз данных MySQL на удалённом хосте.
Требования
Ниже перечислены требования, необходимые на хосте, выполняющем данный модуль.
- MySQLdb (Python 2.x)
- PyMySQL (Python 2.7 и Python 3.X), или
- mysql (бинарник командной строки)
- mysqldump (бинарник командной строки)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert путь добавлено в 2.0 | Путь к сертификату Удостоверяющего центра (CA). Если используется, этот параметр должен указывать на тот же сертификат, что и сервер. псевдонимы: ssl_ca | |
| client_cert путь добавлено в 2.0 | Путь к сертификату открытого ключа клиента. псевдонимы: ssl_cert | |
| client_key путь добавлено в 2.0 | Путь к закрытому ключу клиента. псевдонимы: ssl_key | |
| collation - | Режим сортировки (сопоставления). Применимо только к новым таблицам/базам данных и не обновляет существующие, это ограничение MySQL. | |
| config_file путь добавлено в 2.0 | По умолчанию: "~/.my.cnf" | Указывает конфигурационный файл для чтения имени пользователя и пароля. |
| connect_timeout целое число добавлено в 2.1 | По умолчанию: 30 | Таймаут соединения при подключении к серверу MySQL. |
| encoding - | Режим кодировки, например utf8 или latin1_swedish_ci.
| |
| ignore_tables - добавлено в 2.7 | По умолчанию: [] | Список имён таблиц, которые будут пропущены при создании дампов, в формате база_данных.таблица |
| login_host строка | По умолчанию: "localhost" | Хост, на котором выполняется база данных. |
| login_password строка | Пароль для аутентификации. | |
| login_port целое число | По умолчанию: 3306 | Порт сервера MySQL. Требуется, если login_host отличается от localhost. |
| login_unix_socket строка | Путь к сокету Unix для локальных подключений. | |
| login_user строка | Имя пользователя для аутентификации. | |
| name - / обязательно | Имя базы данных для добавления или удаления name=all Допускается только если state имеет значение dump или import.
если name=all Работает как опция --all-databases для mysqldump (Добавлена в 2.0) псевдонимы: db | |
| quick логический добавлено в 2.1 |
| Параметр, используемый для дампов больших таблиц |
| single_transaction логический добавлено в 2.1 |
| Выполнить дамп в одной транзакции |
| state - |
| Состояние базы данных |
| target - | Расположение файла дампа на удалённом хосте для чтения или записи. Поддерживаются нескомпрессированные файлы SQL ( .sql), а также сжатые файлы bzip2 (.bz2), gzip (.gz) и xz (Добавлено в 2.0). |
Примечания
Примечание
- Требуются бинарники mysql и mysqldump на удалённом хосте.
- Данный модуль не является идемпотентным, когда state имеет значение
import, и будет импортировать дамп каждый раз, если запущен более одного раза. - Требуется пакет PyMySQL (Python 2.7 и Python 3.X) или MySQL-python (Python 2.X) на удалённом хосте. Пакет Python можно установить с помощью apt-get install python-pymysql (Ubuntu; см. apt) или yum install python2-PyMySQL (RHEL/CentOS/Fedora; см. yum). Также можно использовать dnf install python2-PyMySQL для более новых версий Fedora; см. dnf.
- Для передачи учетных данных необходимы как
login_password, так иlogin_user. Если они отсутствуют, модуль попытается прочитать учетные данные из~/.my.cnf, а в крайнем случае использует стандартные данные входа MySQL «root» без пароля.
Примеры
- name: Create a new database with name 'bobdata'
mysql_db:
name: bobdata
state: present
# Copy database dump file to remote host and restore it to database 'my_db'
- name: Copy database dump file
copy:
src: dump.sql.bz2
dest: /tmp
- name: Restore database
mysql_db:
name: my_db
state: import
target: /tmp/dump.sql.bz2
- name: Dump all databases to hostname.sql
mysql_db:
state: dump
name: all
target: /tmp/{{ inventory_hostname }}.sql
- name: Import file.sql similar to mysql -u <username> -p <password> < hostname.sql
mysql_db:
state: import
name: all
target: /tmp/{{ inventory_hostname }}.sql
Статус
- Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Команда Ansible Core
Подсказка
Если вы обнаружите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.8/modules/mysql_db_module.html