No results found
We couldn't find anything using that term, please try searching for something else.
2024-11-26 本页面介绍了如何在 Cloud SQL 实例上创建、列出和删除 MySQL 数据库。 新创建的实例具有四个系统数据库: 如需详细了解 MySQL 数据库,请参阅 MySQL 文档。 准备工作 在完成本页面上的任务之前,必须先执行以下操作: 创建一个 Clou
本页面介绍了如何在 Cloud SQL 实例上创建、列出和删除 MySQL 数据库。
新创建的实例具有四个系统数据库:
如需详细了解 MySQL 数据库,请参阅
MySQL 文档
。
在完成本页面上的任务之前,必须先执行以下操作:
如果您计划使用 mysql 客户端创建或管理数据库,必须先执行以下操作:
mysql
客户端连接到该实例。注意:数据库名称的长度上限为 64 个字符。如需详细了解此名称的其他条件,请参阅架构对象名称。
如果您在创建数据库时未指定自定义字符集和排序规则,则数据库将具有以下默认值:
utf8
utf8_general_ci
utf8
utf8_general_ci
utf8mb4
utf8mb4_0900_ai_ci
如果您需要在创建数据库后修改其字符集或排序规则配置,请参阅更新数据库的字符集和排序规则。
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
转到“Cloud SQL 实例”
如需详细了解字符集和排序规则,请参阅字符集、排序规则、Unicode。
如需创建数据库,请使用 Terraform 资源。
如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
设置要在其中应用 Terraform 配置的默认 Google Cloud 项目。
您只需为每个项目运行一次以下命令,即可在任何目录中运行它。
export GOOGLE_CLOUD_PROJECT=
如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。
.tf
扩展名,例如 main.tf
。在本教程中,该文件称为 main.tf
。
mkdir && cd && touch main.tf
如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。
将示例代码复制到新创建的 main.tf
中。
(可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。
terraform init
(可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade
选项:
terraform init -upgrade
terraform plan
根据需要更正配置。
yes
来应用 Terraform 配置:
terraform apply
等待 Terraform 显示“应用完成!”消息。
注意:Terraform 示例通常假定您的 Google Cloud 项目中启用了所需的 API。
如需删除更改,请执行以下操作:
deletion_protection
参数设置为 false
。
deletion_protection = "false"
yes
,以应用更新后的 Terraform 配置:
terraform apply
运行以下命令并在提示符处输入 yes
,以移除之前使用 Terraform 配置应用的资源:
terraform destroy
以下请求使用 databases:insert 方法在指定的实例上创建新数据库。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/v1/projects//instances//databases
请求 JSON 正文:
{ "project": "", "instance": "", "name": "" }
如需发送您的请求,请展开以下选项之一:
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/v1/projects//instances//databases"
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/v1/projects//instances//databases" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects//instances/", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "CREATE_DATABASE", "name": "", "targetId": "", "selfLink": "https://sqladmin.googleapis.com/v1/projects//operations/", "targetProject": "" }
以下请求使用 databases:insert 方法在指定的实例上创建新数据库。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases
请求 JSON 正文:
{ "project": "", "instance": "", "name": "" }
如需发送您的请求,请展开以下选项之一:
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases"
将请求正文保存在名为 request.json
的文件中,然后执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects//instances/", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "CREATE_DATABASE", "name": "", "targetId": "", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects//operations/", "targetProject": "" }
如需了解参考信息,请参阅 MySQL 文档中的创建数据库。
如需详细了解字符集和排序规则,请参阅字符集、排序规则、Unicode。
CREATE DATABASE [[CHARACTER SET charset_name][COLLATE collation_name]];
要列出实例上的所有数据库,请执行以下操作:
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
转到“Cloud SQL 实例”
以下请求使用 databases:list 方法列出实例的数据库。
使用此 API 列出数据库时,您将看到控制台未显示的其他模板数据库和一个系统数据库。您不能删除或管理此系统数据库。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/v1/projects//instances//databases
如需发送您的请求,请展开以下选项之一:
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects//instances//databases"
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects//instances//databases" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#database", "charset": "utf8", "collation": "utf8_general_ci", "etag": "", "name": "sys", "instance": "", "selfLink": "https://sqladmin.googleapis.com/v1/projects//instances//databases/sys", "project": "" }
以下请求使用 databases:list 方法列出实例的数据库。
使用此 API 列出数据库时,您将看到控制台未显示的其他模板数据库和一个系统数据库。您不能删除或管理此系统数据库。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases
如需发送您的请求,请展开以下选项之一:
执行以下命令:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases"
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#database", "charset": "utf8", "collation": "utf8_general_ci", "etag": "", "name": "sys", "instance": "", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases/sys", "project": "" }
如需了解参考信息,请参阅 MySQL 文档中的显示数据库。
SHOW DATABASES;
要删除 Cloud SQL 实例上的数据库,请执行以下操作:
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
转到“Cloud SQL 实例”
注意:删除数据库会移除数据库目录中的所有文件,包括数据库没有直接使用的所有文件。此类文件的示例包括 MySQL 5.6 和 MySQL 5.7 中中断的 ALTER TABLE 操作创建的 #sql-*
文件。
如需了解参考信息,请参阅 gcloud
。
sql databases delete
gcloud sql databases delete \ --instance=
注意:删除数据库会移除数据库目录中的所有文件,包括数据库没有直接使用的所有文件。此类文件的示例包括 MySQL 5.6 和 MySQL 5.7 中中断的 ALTER TABLE 操作创建的 #sql-*
文件。
以下请求使用 databases:delete 方法删除指定数据库。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
DELETE https://sqladmin.googleapis.com/v1/projects//instances//databases/
如需发送您的请求,请展开以下选项之一:
执行以下命令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/v1/projects//instances//databases/"
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/v1/projects//instances//databases/" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects//instances/", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "DELETE_DATABASE", "name": "", "targetId": "", "selfLink": "https://sqladmin.googleapis.com/v1/projects//operations/", "targetProject": "" }
以下请求使用 databases:delete 方法删除指定数据库。
注意:删除数据库会移除数据库目录中的所有文件,包括数据库没有直接使用的所有文件。此类文件的示例包括 MySQL 5.6 和 MySQL 5.7 中中断的 ALTER TABLE 操作创建的 #sql-*
文件。
在使用任何请求数据之前,请先进行以下替换:
HTTP 方法和网址:
DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases/
如需发送您的请求,请展开以下选项之一:
执行以下命令:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases/"
执行以下命令:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects//instances//databases/" | Select-Object -Expand Content
您应该收到类似以下内容的 JSON 响应:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects//instances/", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-21T22:43:37.981Z", "operationType": "DELETE_DATABASE", "name": "", "targetId": "", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects//operations/", "targetProject": "" }
如需了解参考信息,请参阅 MySQL 文档中的删除数据库。
DROP DATABASE [database_name];
注意:如果数据库的目录包含数据库没有直接使用的任何文件,则 DROP DATABASE
命令会生成错误,表明数据库目录无法删除,例如:
此类文件的示例包括 MySQL 5.6 和 MySQL 5.7 中中断的 ALTER TABLE 操作创建的 #sql-*
文件。如需删除这些文件并完成 DROP DATABASE 操作,请使用以下任一方法重复此操作:控制台、gcloud
命令或 REST API。
如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud SQL 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
免费试用 Cloud SQL