我注意到,在我的群集中每运行2到3周后,Google容器引擎上的mysql 5.7图像就会终止。我将一个小型集群配置为测试环境。我有3个节点,一个用于数据库,一个用于api,另一个用于我的节点js前端。 这一切都适用于我的配置后,我能够创建我的数据库及其附带的表,存储过程和我们常用的数据库对象。我的后端都连接到数据库,我的前端都已启动并运行。然后突然过了一段时间我可以估计大约3个星期我的后端再也无法连接到我的数据库。它只是指出它无法连接到mysql服务器。我冲到我的cmd并检查mysql pod是否正在运行。它实际上正在运行。但我无法连接访问我的数据库。我不得不幸运地重新部署mysql映像,因为我的持久卷仍然可以恢复db文件。第二次它发生时它一直说没有root用户,我很惊讶,因为我通常做我所有的数据库设计和所有使用这个用户。第三次它无法再找到我的数据库了。我也认为它可能是我的部署脚本,我在这里附上它以及任何建议:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: mysql
labels:
app: mysql
spec:
replicas: 1
selector:
matchLabels:
app: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: mysql
spec:
containers:
- image: mysql:5.7
args:
- "--ignore-db-dir=lost+found"
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql
key: password
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pv-claim
这就是我在日志中得到的内容
W1231 11:59:23.713916 14792 cmd.go:392] log is DEPRECATED and will be
removed in a future version. Use logs instead.
Initializing database
2017-12-31T10:57:23.236067Z 0 [Warning] TIMESTAMP with implicit DEFAULT
value is deprecated. Please use --explicit_defaults_for_timestamp server
option (see documentation for more details).
2017-12-31T10:57:23.237652Z 0 [ERROR] --initialize specified but the data
directory has files in it. Aborting.
2017-12-31T10:57:23.237792Z 0 [ERROR] Aborting