创建MySQL数据库
应用场景
MySQL是目前最受欢迎的开源数据库之一,其性能卓越,搭配LAMP(Linux + Apache + MySQL + Perl/PHP/Python),成为WEB开发的高效解决方案。 本教程将指导您如何通过Terraform脚本创建一个RDS for MySQL实例 。
操作步骤
- 规划并创建虚拟私有云、子网及安全组。
- 若需要创建新的网络配置,请参考典型网络配置。
- 若使用已创建的网络配置,需要使用data source获取对应的ID,参考样例如下。
data "huaweicloud_vpc" "myvpc" { name = var.vpc_name } data "huaweicloud_vpc_subnet" "mysubnet" { vpc_id = data.huaweicloud_vpc.myvpc.id name = var.subnet_name } data "huaweicloud_networking_secgroup" "mysecgroup" { name = var.secgroup_name }
- 创建RDS for MySQL实例。
示例一 使用新建网络配置创建RDS实例,并使用随机密码。
data "huaweicloud_availability_zones" "myaz" {} resource "random_password" "mypassword" { length = 12 special = true override_special = "!@#%^*-_=+" } resource "huaweicloud_rds_instance" "myinstance" { name = "mysql_instance" flavor = "rds.mysql.c2.large.ha" ha_replication_mode = "async" vpc_id = huaweicloud_vpc.myvpc.id subnet_id = huaweicloud_vpc_subnet.mysubnet.id security_group_id = huaweicloud_networking_secgroup.mysecgroup.id availability_zone = [ data.huaweicloud_availability_zones.myaz.names[0], data.huaweicloud_availability_zones.myaz.names[1] ] db { type = "MySQL" version = "8.0" password = random_password.mypassword.result } volume { type = "ULTRAHIGH" size = 40 } }
示例二 使用已有网络配置创建RDS实例data "huaweicloud_availability_zones" "myaz" {} resource "huaweicloud_rds_instance" "myinstance" { name = "mysql_instance" flavor = "rds.mysql.c2.large.ha" ha_replication_mode = "async" vpc_id = data.huaweicloud_vpc.myvpc.id subnet_id = data.huaweicloud_vpc_subnet.mysubnet.id security_group_id = data.huaweicloud_networking_secgroup.mysecgroup.id availability_zone = [ data.huaweicloud_availability_zones.myaz.names[0], data.huaweicloud_availability_zones.myaz.names[1] ] db { type = "MySQL" version = "8.0" password = var.rds_password } volume { type = "ULTRAHIGH" size = 40 } }
- 配置变量。
创建variables.tf文件,输入以下内容,并保存在当前的执行目录中。您可以根据实际情况修改变量值。
variable "vpc_name" { default = "vpc-basic" } variable "vpc_cidr" { default = "172.16.0.0/16" } variable "subnet_name" { default = "subent-basic" } variable "subnet_cidr" { default = "172.16.10.0/24" } variable "subnet_gateway" { default = "172.16.10.1" } variable "primary_dns" { default = "100.125.1.250" }
- 创建资源。
- 运行 terraform init 进行初始化。
- 运行 terraform plan 查看资源。
- 确认资源无误后,运行 terraform apply 开始创建。
- 运行 terraform show 可以查看已创建的RDS实例信息。
资源名称 |
参数名称 |
参数说明 |
|
---|---|---|---|
huaweicloud_rds_instance |
name |
(必填)数据库实例名称,同一租户下,同类型的数据库实例名称可以重名
|
|
flavor |
(必填)数据库实例规格,本教程使用"rds.mysql.c2.large.ha",实例规格信息也可以通过huaweicloud_rds_flavors查询。 |
||
ha_replication_mode |
(可选)备机同步参数。MySQL的取值为“async”或“semisync”。 |
||
availability_zone |
(必填)实例所在可用区,对于主备实例支持多个可用区,请参见地区和终端节点。 |
||
vpc_id |
(必填)实例所属的VPC ID |
||
subnet_id |
(必填)实例所属的子网网络ID |
||
security_group_id |
(必填)实例所属的安全组ID |
||
db |
type |
(必填)数据库引擎类型
|
|
version |
(必填)数据库引擎版本,MySQL引擎支持5.6、5.7、8.0版本。 |
||
password |
(必填)数据库密码 由大小写字母、数字和特殊符号~!@#%^*-_=+?组成,长度8~32个字符。 建议您输入高强度密码,以提高安全性,防止出现密码被暴力破解等安全风险。 |
||
port |
(可选)数据库端口
|
||
volume |
type |
(必填)数据库实例磁盘类型 |
|
size |
(必填)数据库实例磁盘空间大小
|