【问题标题】:How to start a mysql container in Kubernetes with sample data?如何使用示例数据在 Kubernetes 中启动 mysql 容器?
【发布时间】:2019-10-20 10:53:30
【问题描述】:
我需要在 Kubernetes 中启动一个 MySQL 容器,其中包含一个数据库、一个模式和示例数据。
我尝试在Kubernetes yaml中使用参数“command”,但是在执行的时候,db仍然没有启动。
- image: mysql:5.7.24
name: database
command:
[
'/usr/bin/mysql -u root -e "CREATE DATABASE IF NOT EXISTS mydbname"',
]
env:
- name: MYSQL_ALLOW_EMPTY_PASSWORD
value: "1"
【问题讨论】:
标签:
mysql
kubernetes
google-kubernetes-engine
dump
【解决方案1】:
解决添加
volumeMounts:
- name: initdb
mountPath: /docker-entrypoint-initdb.d
...
volumes:
- name: initdb
configMap:
name: initdb-config
...
---
apiVersion: v1
kind: ConfigMap
metadata:
name: initdb-config
data:
initdb.sql: |
mysqlquery
【解决方案2】:
你可以先创建mysql的容器,然后再导入mysql的数据,这样就可以了。
您可以创建 pvc 卷并在没有任何数据库的情况下启动黑色容器。
您可以使用命令 exec 将 sql while 和数据导入数据库,这将在容器内创建数据库和示例数据。
启动容器并使用 exec 模式进入容器内部并创建一个数据库,然后运行此命令
kubectl exec -i <container name> -- mysql -h <hostname> -u <username> -p<password> <databasename> > databasefile.sql