首页 > 解决方案 > Minishift MySQL 服务未显示实际数据库

问题描述

使用 Springboot 2.2.4 和 Openshift 的本地发行版(Minishift、Kubernetes Master 1.11、Openshift Web Console 3.11)。

该应用程序本身只是一个spring-boot-starter-data-rest CRUD,用于在 Openshift 的 pod 中配置的简单 Employee 实体。数据源是另一个容器中的 MySQL 服务。

在部署时,一些数据被加载到员工表中。仅 4 名员工用于测试目的。

DROP TABLE IF EXISTS employee;

CREATE TABLE employee (
  id int(11) NOT NULL AUTO_INCREMENT,
  first_name varchar(45) DEFAULT NULL,
  last_name varchar(45) DEFAULT NULL,
  email varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

--
-- Data for table `employee`
--

INSERT INTO employee VALUES
(1,'Leslie','Andrews','leslie@luv2code.com'),
(2,'Emma','Baumgarten','emma@luv2code.com'),
(3,'Avani','Gupta','avani@luv2code.com'),
(4,'Yuri','Petrov','yuri@luv2code.com');

一切都很完美。所有端点都已很好地发布,并且一切正常。

但出于好奇,我正在尝试连接一些 mysql 查看器以检查它在启动时加载并稍后在 API 使用时更改的数据。但是我在任何地方都找不到桌子。我正在尝试两种方法:

在此处输入图像描述

configmap.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: spring-boot-bootstrap
data:
  application.properties: |-
    spring.datasource.url=jdbc:mysql://mydatabase:3306/mydatabase

fabric8\deployment.yml

spec:
  template:
    spec:
      containers:
      - env:
        - name: SPRING_PROFILES_ACTIVE
          value: mysql
        - name: SPRING_DATASOURCE_USER
          valueFrom:
            secretKeyRef:
              name: mydatabase
              key: database-user
        - name: SPRING_DATASOURCE_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mydatabase
              key: database-password
        livenessProbe:
          httpGet:
            path: /actuator/health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 180
        readinessProbe:
          httpGet:
            path: /actuator/health
            port: 8080
            scheme: HTTP
          initialDelaySeconds: 30

任何想法?

标签: mysqldockerkubernetescontainersopenshift

解决方案


Postgres 具有相同的行为者。

进入 Postgres 容器并通过命令行(Postgres 命令)。我连接到数据库,但它是空的(没有表)。

我用小班。

jdbc:postgresql://localhost:25432/pstgrs1 在客户端工作。我使用了 spring 应用程序,它可以工作,但表是空的。

示例 DROP TABLE IF EXISTS 城市;CREATE TABLE 城市(id 序列主键,名称 VARCHAR(255),人口整数);


推荐阅读