Kubernetes 上的集群初始化配置

    集群创建时默认会创建 账号,但是密码为空,这会带来一些安全性问题。可以通过如下步骤为 root 账号设置初始密码:

    1. 创建 Namespace

      在部署集群前通过下面命令创建 :

    2. 在部署集群前通过下面命令创建 Secret 指定 root 账号密码:

        如果希望能自动创建其它用户,可以在上面命令里面再加上其他用户的 username 和 password,例如:

        该命令会创建 rootdeveloper 两个用户的密码,存到 tidb-secret 的 Secret 里面。并且创建的普通用户 默认只有 USAGE 权限,其他权限请在 tidb.initSql 中设置。

      1. 设置允许访问 TiDB 的主机

        在部署集群前可以通过 tidb.permitHost 配置项来设置允许访问 TiDB 的主机 host_name。如果不设置,则允许所有主机访问。详情请参考 。

        1. tidb:
        2. passwordSecretName: tidb-secret
        3. permitHost: <mysql-client-host-name>

      批量执行初始化 SQL 语句

      集群在初始化过程还可以自动执行 中的 SQL 语句用于初始化,该功能可以用于默认给集群创建一些 database 或者 table,并且执行一些用户权限管理类的操作。例如如下设置会在集群创建完成后自动创建名为 app 的 database,并且赋予 developer 账号对 app 的所有管理权限:

      1. tidb:
      2. passwordSecretName: tidb-secret
      3. initSql: |-
      4. CREATE DATABASE app;

      将上述内容保存到 values.yaml 文件,然后执行下面命令部署集群:

      注意: