mysql_db – Добавление или удаление баз данных MySQL на удалённом хосте
Описание
- Добавление или удаление баз данных MySQL на удалённом хосте.
Требования
Ниже перечислены требования к хосту, на котором будет выполняться этот модуль.
- MySQLdb (Python 2.x)
- PyMySQL (Python 2.7 и Python 3.X), или
- mysql (бинарный файл командной строки)
- mysqldump (бинарный файл командной строки)
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| ca_cert путь | Путь к сертификату Центра сертификации (CA). Если используется, этот параметр должен указывать на тот же сертификат, что и сервер. Псевдонимы: ssl_ca | |
| client_cert путь | Путь к сертификату открытого ключа клиента. Псевдонимы: ssl_cert | |
| client_key путь | Путь к закрытому ключу клиента. Псевдонимы: ssl_key | |
| collation - | Режим сортировки (сортировка). Применяется только к новым таблицам/базам данных и не обновляет существующие — это ограничение MySQL. | |
| config_file путь | Значение по умолчанию: "~/.my.cnf" | Укажите конфигурационный файл, из которого нужно считать пользователя и пароль. |
| connect_timeout целое число | Значение по умолчанию: 30 | Таймаут соединения при подключении к серверу MySQL. |
| encoding - | Режим кодирования, например utf8 или latin1_swedish_ci
| |
| ignore_tables - добавлен в 2.7 | Значение по умолчанию: [] | Список имён таблиц, которые будут проигнорированы при дампе в формате имя_базы_данных.имя_таблицы |
| login_host строка | Значение по умолчанию: "localhost" | Хост, на котором работает база данных. |
| login_password строка | Пароль, используемый для аутентификации. | |
| login_port целое число | Значение по умолчанию: 3306 | Порт сервера MySQL. Требуется, чтобы login_host был определён не как localhost, если используется login_port. |
| login_unix_socket строка | Путь к сокету Unix доменного имени для локальных подключений. | |
| login_user строка | Имя пользователя, используемое для аутентификации. | |
| name список / элементы=строка / обязательно | Имя базы данных для добавления или удаления.
name=all Может быть предоставлен только в том случае, если state равен dump или import. Список баз данных предоставляется со значениями state=dump, state=present и state=absent. если name=all Работает как опция --all-databases для mysqldump (Добавлена в 2.0). Псевдонимы: db | |
| quick булево |
| Параметр, используемый для дампинга больших таблиц |
| single_transaction булево |
| Выполнить дамп в рамках одной транзакции |
| state - |
| Состояние базы данных |
| target - | Расположение на удалённом хосте файла дампа для чтения или записи. Поддерживаются несжатые SQL-файлы ( .sql) а также сжатые файли bzip2 (.bz2), gzip (.gz) и xz (Добавлена в 2.0). |
Примечания
Примечание
- Требуются бинарные файлы mysql и mysqldump на удалённом хосте.
- Этот модуль не является идемпотентным, когда состояние равно
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
- name: Create new databases with names 'foo' and 'bar'
mysql_db:
name:
- foo
- bar
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 multiple databases
mysql_db:
state: dump
name: db_1,db_2
target: /tmp/dump.sql
- name: Dump multiple databases
mysql_db:
state: dump
name:
- db_1
- db_2
target: /tmp/dump.sql
- name: Dump all databases to hostname.sql
mysql_db:
state: dump
name: all
target: /tmp/dump.sql
- name: Import file.sql similar to mysql -u <username> -p <password> < hostname.sql
mysql_db:
state: import
name: all
target: /tmp/dump.sql
- name: Delete database with name 'bobdata'
mysql_db:
name: bobdata
state: absent
- name: Make sure there is neither a database with name 'foo', nor one with name 'bar'
mysql_db:
name:
- foo
- bar
state: absent
Возвращаемые значения
Общие возвращаемые значения документированы здесь, следующие поля уникальны для этого модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| db строка | всегда | Имена баз данных в формате строки, разделённые пробелами. Пример: foo bar |
| db_list список добавлен в 2.9 | всегда | Список имён баз данных. Пример: ['foo', 'bar'] |
Статус
- Не гарантируется обратная совместимость этого модуля. [превью]
- Этот модуль поддерживается сообществом Ansible. [сообщество]
Авторы
- Команда разработчиков Ansible
Подсказка
Если вы заметите какие-либо проблемы в этой документации, вы можете отредактировать этот документ, чтобы улучшить его.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/mysql_db_module.html