我需要多个数据库在一个mysql服务。
apiVersion: v1
kind: Service
metadata:
name: database
labels:
app: keyshake
spec:
ports:
- port: 3306
selector:
app: keyshake
tier: database
type: LoadBalancer
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: database-pv-claim
labels:
app: keyshake
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: database
labels:
app: keyshake
spec:
selector:
matchLabels:
app: keyshake
tier: database
strategy:
type: Recreate
template:
metadata:
labels:
app: keyshake
tier: database
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_RANDOM_ROOT_PASSWORD
value: "yes"
- name: MYSQL_USER
value: keyshake
- name: MYSQL_PASSWORD
valueFrom:
secretKeyRef:
name: database-password
key: password
ports:
- containerPort: 3306
name: database
volumeMounts:
- name: database-persistent-storage
mountPath: /var/lib/mysql
- name: mysql-initdb
mountPath: /docker-entrypoint-initdb.d
volumes:
- name: database-persistent-storage
persistentVolumeClaim:
claimName: database-pv-claim
- name: mysql-initdb
configMap:
name: mysql-initdb-config
这是我的配置。现在我正在使用一个配置Map,其中包含以下内容:
init.sql:
CREATE DATABASE IF NOT EXISTS keyshake;
CREATE DATABASE IF NOT EXISTS pdns;
当我创建服务时,它会记录这个 /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/init.sql
但当我连接到它并列出数据库时,我什么也看不到。
我想我的配置没有正确设置,但我不知道是什么问题。
提前谢谢。
西奥
1条答案
按热度按时间z9ju0rcb1#
在docker compose文件中添加相同的配置,如:
如果您在一个服务中需要这个,如果您的意思是正确的,那么您需要将这个docker卷加载到您的应用程序中。如果您想用2个数据库配置应用程序,请在loadbalancer中添加类似config.services.mysqlserver1(host,port,pass)的属性。
如果您不使用db累加器(比如jpa),那么您必须单独添加schema.sql
并在docker entrypoint中为两个映像示例添加schema.sql的路径,以代替docker entrypoint initdb.sql--->schema.sql
在端口中配置different,请参阅
"docker -ti mysql1 /bin/bash"
以及"docker -ti server2 /bin/bash"
,两个数据库示例是否都有所需的表。希望这有帮助!!!。