在 Kubernetes 中向 MySQL 添加另一个用户

2024-04-30

这是我的MySQL

apiVersion: apps/v1beta1
kind: Deployment
metadata:
  name: abc-def-my-mysql
  namespace: abc-sk-test
  labels:
    project: abc
    ca: my
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: abc-def-my-mysql
        project: abc
        ca: my
    spec:
      containers:
      - name: mysql
        image: mysql:5.6
        args: ["--default-authentication-plugin=mysql_native_password", "--ignore-db-dir=lost+found"]
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "root"
        - name: MYSQL_DATABASE
          value: "my_abc"
        - name: MYSQL_USER
          value: "test_user"
        - name: MYSQL_PASSWORD
          value: "12345"
        volumeMounts:
         - mountPath: /var/lib/mysql
           name: abc-def-my-mysql-storage
      volumes:
      - name: abc-def-my-mysql-storage
        persistentVolumeClaim:
         claimName: abc-def-my-mysql-pvc

我想向 mysql 添加另一个用户,以便真正的用户可以连接到它。而不是使用“test_user”。如何添加另一个用户,是否像在上述配置中添加任何其他环境变量一样


将“创建用户脚本”安装到容器中/docker-entrypoint-initdb.d目录。它将在第一次 pod 启动时执行一次。

apiVersion: extensions/v1beta1
kind: Pod
metadata:
  name: mysql
spec:
  containers:
  - name: mysql
    image: mysql
    .....
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: "root"
    .....
    volumeMounts:
      - name: mysql-initdb
        mountPath: /docker-entrypoint-initdb.d
  volumes:
  - name: mysql-initdb
    configMap:
      name: initdb

---
apiVersion: v1
kind: ConfigMap
metadata:
  name: initdb
data:
  initdb.sql: |-
    CREATE USER 'first_user'@'%' IDENTIFIED BY '111' ;
    CREATE USER 'second_user'@'%' IDENTIFIED BY '222' ;

Test:

kubectl exec -it <PODNAME> -- mysql -uroot -p -e 'SELECT user, host FROM mysql.user;'

    +-------------+------+
    | user        | host |
    +-------------+------+
    | first_user  | %    |
    | second_user | %    |
    | root        | %    |
    +-------------+------+

See 初始化一个新实例 https://hub.docker.com/_/mysql/Mysql Docker Hub 镜像:

当容器第一次启动时,会创建一个新的数据库 将使用提供的创建并初始化指定的名称 配置变量。此外,它将执行文件 扩展.sh, .sql and .sql.gz发现于/docker-entrypoint-initdb.d。文件将按字母顺序执行 命令。

您可以轻松地填充您的mysql通过挂载 SQL 来提供服务 转储到该目录并提供贡献的自定义图像 数据。 SQL文件将默认导入到指定的数据库 通过 MYSQL_DATABASE 变量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Kubernetes 中向 MySQL 添加另一个用户 的相关文章

随机推荐