创建和访问数据库实例

假设您已安装数据库服务,并使用您想要使用的数据库类型和版本的镜像填充了数据存储,并且您可以创建和访问数据库实例。

本示例演示如何创建和访问 MySQL 5.7.29 数据库。

创建和访问数据库实例

  1. 创建实例之前

    • 选择规格。规格定义实例的 RAM 和根卷大小。 Trove OpenStack CLI 提供了一个命令来获取支持创建 trove 实例的规格列表。

      $ openstack database flavor list
      

      注意

      如果创建的是复制集群的副本实例,则不需要规格,因为它与复制主实例相同。

    • 选择实例分配 IP 地址的 neutron 网络。您可以指定网络 ID 或子网 ID,甚至可以指定 IP 地址(必须可用)。

    • 选择卷大小。 cinder 卷用作数据库的数据存储。

    • 选择数据存储版本。

      注意

      如果创建的是复制集群的副本实例,则不需要数据存储,因为它与复制主实例相同。

    • (可选) 选择数据源。您可以使用备份创建新实例,方法是使用 --backup <BACKUP_ID>,或者使用 --replica-of <PRIMARY_INSTANCE_ID> 创建复制集群的副本实例。

  2. 创建数据库实例

    本示例使用以下参数创建数据库实例

    • 实例名称:mysql_instance_1

    • 数据库规格:1fb05bb0-4605-48b6-81e6-3d4622e4a330

    • 卷大小为 5 (5 GB)

    • 一个名为 test 的数据库

    • 该数据库基于 mysql 数据存储和 5.7.29 数据存储版本

    • 用户 userA 具有密码 password

    • 一个 Neutron 网络 8799cf10-01ef-40e2-b04e-06da7cfa5668 用于分配数据库 IP 地址(用于内部访问)。

    • 通过 --is-public 将实例暴露给公共网络(用于外部访问)。

    • 只有来自 202.37.199.1/2410.1.0.1/24 的 IP 地址才能访问数据库。

    $ openstack database instance create mysql_instance_1 \
        --flavor 6 \
        --size 5 \
        --nic net-id=8799cf10-01ef-40e2-b04e-06da7cfa5668 \
        --databases test --users userA:password \
        --datastore mysql --datastore-version 5.7.29 \
        --is-public \
        --allowed-cidr 10.1.0.1/24 \
        --allowed-cidr 202.37.199.1/24
    +--------------------------+--------------------------------------+
    | Field                    | Value                                |
    +--------------------------+--------------------------------------+
    | allowed_cidrs            | [10.1.0.1/24, 202.37.199.1/24]       |
    | created                  | 2020-12-08T21:00:19                  |
    | datastore                | mysql                                |
    | datastore_version        | 5.7.29                               |
    | datastore_version_number | 5.7.29                               |
    | flavor                   | 1fb05bb0-4605-48b6-81e6-3d4622e4a330 |
    | id                       | ad40cf6c-6532-4a22-a3f3-7364f0f04a0f |
    | name                     | mysql_instance_1                     |
    | operating_status         |                                      |
    | public                   | True                                 |
    | region                   | RegionOne                            |
    | service_status_updated   | 2020-12-08T21:00:19                  |
    | status                   | BUILD                                |
    | updated                  | 2020-12-08T21:00:19                  |
    | volume                   | 5                                    |
    +--------------------------+--------------------------------------+
    
  3. 获取数据库实例的 IP 地址

    在获取 IP 地址以访问数据库之前,请等待实例 operating_status 更改为 HEALTHY。

    $ openstack database instance show ad40cf6c-6532-4a22-a3f3-7364f0f04a0f
    +--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
    | Field                    | Value                                                                                                                                           |
    +--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
    | addresses                | [{'address': '10.0.0.59', 'type': 'private', 'network': '09f6aadc-f92d-41d4-8cad-2eb1876054dd'}, {'address': '172.24.4.242', 'type': 'public'}] |
    | allowed_cidrs            | []                                                                                                                                              |
    | created                  | 2020-12-08T21:00:20                                                                                                                             |
    | datastore                | mysql                                                                                                                                           |
    | datastore_version        | 5.7.29                                                                                                                                          |
    | datastore_version_number | 5.7.29                                                                                                                                          |
    | flavor                   | 1fb05bb0-4605-48b6-81e6-3d4622e4a330                                                                                                            |
    | id                       | ad40cf6c-6532-4a22-a3f3-7364f0f04a0f                                                                                                            |
    | ip                       | 10.0.0.59, 172.24.4.242                                                                                                                         |
    | name                     | mysql_instance_1                                                                                                                                |
    | operating_status         | HEALTHY                                                                                                                                         |
    | public                   | True                                                                                                                                            |
    | region                   | RegionOne                                                                                                                                       |
    | service_status_updated   | 2020-12-08T21:05:51                                                                                                                             |
    | status                   | ACTIVE                                                                                                                                          |
    | updated                  | 2020-12-08T21:04:39                                                                                                                             |
    | volume                   | 5                                                                                                                                               |
    | volume_used              | 0.2                                                                                                                                             |
    +--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------+
    
  4. 访问新的数据库

    现在,您可以使用典型的数据库访问命令访问您刚刚创建的新数据库。在本 MySQL 示例中,请根据命令的运行位置,将 IP_ADDRESS 替换为 10.0.0.59 或 172.24.4.242。确保您的 IP 地址在上述命令中指定的允许的 CIDR 中。

    $ mysql -h IP_ADDRESS -uuserA -ppassword