gpt4 book ai didi

mysql - Kubernetes:不允许主机 'x.x.x.x' 连接到此 MySQL

转载 作者:行者123 更新时间:2023-11-30 21:31:05 25 4
gpt4 key购买 nike

我正在 K8s 集群上启动一个 MYSQL 容器。部署yaml如下:

---
apiVersion: v1
kind: Pod
metadata:
name: {{ ca.name }}-db-mysql
labels:
k8s-app: {{ ca.name }}-db-mysql
spec:
containers:
- name: {{ ca.name }}-db-mysql
image: "mysql:5.7.23"
env:
- { name: "MYSQL_ROOT_PASSWORD", value: "password" }
- { name: "MYSQL_ROOT_HOST", value: "%" }
args: ["mysqld", --default-authentication-plugin=mysql_native_password", "--sql-mode="]
ports:
- containerPort: 3306
volumeMounts:
- { mountPath: "/var/lib/mysql", name: "{{ ca.name }}-mysql", subPath: "cas/db/rca/mysqldb" }
restartPolicy: OnFailure
volumes:
- name: {{ ca.name }}-mysql
persistentVolumeClaim:
claimName: {{ ca.name }}-mysql-volume

尽管使用了 MYSQL_ROOT_HOST 配置,配置的 pod 不会将其主机配置为根用户的 %

enter image description here

我必须手动更新主机设置才能访问集群外的 MYSQL 容器。

kubectl exec -it ca1st-orgb-db-mysql /bin/bash
mysql -u root
SELECT host FROM mysql.user WHERE User = 'root';
CREATE USER 'root'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;

为什么它没有配置环境变量中提供的默认设置?有人可以分享他们对此的想法吗。

最佳答案

我认为 MYSQL image 5.7.23 有问题。我将 MYSQL 版本降级到 5.6 并从 pod 配置中删除了 args,一切都按预期工作。

数据库查询:

  1. 启动 MYSQL 客户端:kubectl run -it --rm --image=mysql:5.7.23 --restart=Never mysql-client -- mysql -h ca1st-orga-db-mysql -pyourpassword
  2. 对用户运行 SELECT 查询:SELECT host FROM mysql.user WHERE User = 'root';

您可以注意到 % 和 localhost。

希望这对您有所帮助。

enter image description here

关于mysql - Kubernetes:不允许主机 'x.x.x.x' 连接到此 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56123011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com