# MySQL MySQL (Bitnami) с поддержкой репликации primary/secondary и Prometheus метриками через mysqld_exporter sidecar. ## Быстрый старт ```yaml # group_vars/all/addons.yml addon_mysql: true ``` Секреты в `vault.yml`: ```yaml vault_mysql_root_password: "root-password" vault_mysql_password: "app-password" ``` ```bash make addon-mysql ``` ## Параметры | Переменная | Умолч. | Описание | |---|---|---| | `mysql_auth_username` | `appuser` | Пользователь приложения | | `mysql_auth_database` | `appdb` | База данных приложения | | `mysql_storage_size` | `8Gi` | Размер PVC | | `mysql_secondary_replica_count` | `0` | Реплики secondary (0 = только primary) | ## Подключение из подов ```yaml env: - name: MYSQL_HOST value: "mysql.mysql.svc.cluster.local" - name: MYSQL_PORT value: "3306" - name: MYSQL_DATABASE value: "appdb" - name: MYSQL_USER value: "appuser" - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql key: mysql-password ``` ## Репликация ```yaml mysql_secondary_replica_count: 1 # primary + 1 secondary ``` Primary: `mysql-primary.mysql.svc.cluster.local:3306` Secondary (read-only): `mysql-secondary.mysql.svc.cluster.local:3306` ## Создать дополнительные базы ```bash kubectl exec -n mysql statefulset/mysql-primary -- \ mysql -u root -p"$ROOT_PASSWORD" -e "CREATE DATABASE mydb; GRANT ALL ON mydb.* TO 'appuser'@'%';" ``` ## Дамп и восстановление ```bash # Дамп kubectl exec -n mysql statefulset/mysql-primary -- \ mysqldump -u root -p"$ROOT_PASSWORD" appdb > dump.sql # Восстановление kubectl exec -i -n mysql statefulset/mysql-primary -- \ mysql -u root -p"$ROOT_PASSWORD" appdb < dump.sql ``` ## Использование с Databasus При `addon_databasus: true` MySQL автоматически добавляется как источник для резервного копирования. ## Официальные ресурсы - Официальный сайт: [https://www.mysql.com/](https://www.mysql.com/) - Официальная документация: [https://dev.mysql.com/doc/](https://dev.mysql.com/doc/) - Версии Helm chart / ПО: [https://artifacthub.io/packages/helm/bitnami/mysql](https://artifacthub.io/packages/helm/bitnami/mysql)