【问题标题】:Unable to create a MySQL database backup in GCP storage无法在 GCP 存储中创建 MySQL 数据库备份
【发布时间】:2020-02-13 23:01:52
【问题描述】:

我们使用 mysql 数据库在 k8s(GCP) 中部署一个 laravel 项目。现在我想在 cronjob 的帮助下不时备份这个数据库,我关注了articles,但我无法创建备份文件。但是,根据文章,我们需要在GCP 中创建存储桶和服务帐户

它可以正常工作,但存储桶中没有备份文件。

cronjob.yaml 文件

apiVersion: batch/v1beta1 kind: CronJob metadata: name: backup-cronjob spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: backup-container image: gcr.io/thereport/abcd env: - name: DB_NAME valueFrom: configMapKeyRef: name: backup-configmap key: db - name: GCS_BUCKET valueFrom: configMapKeyRef: name: backup-configmap key: gcs-bucket - name: DB_HOST valueFrom: secretKeyRef: name: backup key: db_host - name: DB_USER valueFrom: secretKeyRef: name: backup key: username - name: DB_PASS valueFrom: secretKeyRef: name: backup key: password - name: GCS_SA valueFrom: secretKeyRef: name: backup key: thereport-541be75e66dd.json args: - /bin/bash - -c - mysqldump --u root --p"root" homestead > trydata.sql; gcloud config set project thereport; gcloud auth activate-service-account --key-file backup; gsutil cp /trydata.sql gs://backup-buck

      restartPolicy: OnFailure

【问题讨论】:

  • 您好,您的 kube 服务帐号是否有权在您的存储桶中写入对象?快速尝试(不是真正的实现)让您的bucket public 并尝试运行该作业,如果您在此之后在您的存储桶中看到转储文件,您将需要查看您的存储桶策略以访问您的 kube .

标签: mysql kubernetes google-cloud-platform devops kubernetes-cronjob


【解决方案1】:

你没有复制正确的文件:

mysqldump --u root --p"root" homestead > trydata.sql; gcloud config set 项目报告; gcloud auth activate-service-account --key-file 备份; gsutil cp /laravel.sql gs://backup-buck

【讨论】:

  • 为了确保你得到同一个文件,在同一个目录下,试试这个(trydata.sql文件的绝对路径,因为你用这个路径复制文件)`mysqldump --u root - -p“根”宅基地> /trydata.sql;`
  • 我已经按照建议做了一切,仍然无法备份。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 2013-07-12
相关资源
最近更新 更多