【发布时间】:2023-01-17 19:56:03
【问题描述】:
我正在尝试为 MySQL pod 创建其他用户。
我使用环境变量- MYSQL_USER 来创建其他用户。在创建 pod 之后。我只能使用第二个用户而不是第一个用户。
有什么办法可以做到这一点?
【问题讨论】:
标签: mysql kubernetes
我正在尝试为 MySQL pod 创建其他用户。
我使用环境变量- MYSQL_USER 来创建其他用户。在创建 pod 之后。我只能使用第二个用户而不是第一个用户。
有什么办法可以做到这一点?
【问题讨论】:
标签: mysql kubernetes
您可以使用/docker-entrypoint-initdb.d
当一个容器第一次启动时,一个新的数据库 将使用提供的创建和初始化指定的名称 配置变量。此外,它将执行文件 在中找到的扩展名 .sh、.sql 和 .sql.gz /docker-入口点-initdb.d。文件将按字母顺序执行 命令。您可以通过安装 SQL 轻松地填充您的 mysql 服务 转储到该目录并提供自定义图像 数据。 SQL文件将默认导入到指定的数据库 通过 MYSQL_DATABASE 变量。
您可以将文件挂载到该路径
volumes: - ./<your-path-to-create-user.sql>:/docker-entrypoint-initdb.d创建用户.sql
CREATE USER 'root'@'%' IDENTIFIED BY 'password'; CREATE USER 'user1'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';所以在初始化上面的 SQL 脚本后将被执行并创建用户到数据库,你可以根据需要编辑它。
如果你在库伯内斯你可以使用配置图
apiVersion: extensions/v1beta1 kind: Pod metadata: name: mysql spec: containers: - name: mysql image: mysql ..... env: - name: MYSQL_ROOT_PASSWORD value: "root" ..... volumeMounts: - name: mysql-inituser mountPath: /docker-entrypoint-initdb.d volumes: - name: mysql-inituser configMap: name: users --- apiVersion: v1 kind: ConfigMap metadata: name: users data: create-user.sql: |- CREATE USER 'root'@'%' IDENTIFIED BY 'password'; CREATE USER 'user1'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
【讨论】: