You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes环境下Laravel与MySQL通信失败及phpMyAdmin登录问题

问题修复方案

1. Laravel数据库连接地址配置错误

你的Laravel .env 文件中 DB_HOST 写错了,应该指向Kubernetes里MySQL服务的名称(mysql),而不是Laravel自身的Pod名称:

DB_CONNECTION=mysql
DB_HOST=mysql  # 修改为MySQL服务名
DB_PORT=3306
DB_DATABASE=laravel_electron
DB_USERNAME=root
DB_PASSWORD=root

2. MySQL ConfigMap变量名不符合镜像要求

MySQL官方镜像需要用 MYSQL_DATABASE 指定初始化的数据库名,而非你用的 DB_NAME,修改 configmap.yaml:

apiVersion: v1
kind: ConfigMap
metadata:
  name: db-config
  labels:
    app: mysql
data:
  MYSQL_DATABASE: laravel_electron  # 替换原DB_NAME
  DB_USERNAME: root
  DB_PASSWORD: root
  MYSQL_ROOT_PASSWORD: root

3. phpMyAdmin缺少MySQL连接配置

phpMyAdmin需要配置环境变量才能连接到MySQL,修改 php.yaml 的Pod部分:

apiVersion: v1
kind: Pod
metadata:
  name: php
  labels:
    app: php 
spec:
  containers:
  - name: phpmy
    image: phpmyadmin:latest
    resources:
      limits:
        memory: "128Mi"
        cpu: "500m"
    ports:
      - containerPort: 80
    env:
      - name: PMA_HOST
        value: mysql  # 指向MySQL服务名
      - name: PMA_USER
        value: root
      - name: PMA_PASSWORD
        value: root
---
apiVersion: v1
kind: Service
metadata:
  name: php-service
spec:
  selector:
    app: php
  ports:
  - port: 80
    targetPort: 80 
    protocol: TCP
  type: NodePort

4. 生效步骤

  • 重新应用ConfigMap:kubectl apply -f configmap.yaml
  • 重启MySQL Pod:kubectl delete pod mysql && kubectl apply -f sql.yaml
  • 重启Laravel Pod:kubectl delete pod laravel-container && kubectl apply -f laravel.yaml
  • 重启phpMyAdmin Pod:kubectl delete pod php && kubectl apply -f php.yaml
  • 进入Laravel Pod执行迁移:kubectl exec -it laravel-container -- php artisan migrate --seed

内容的提问来源于stack exchange,提问作者user24675945

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:27:21