本文属使用Prisma构建GraphQL服务系列。
按照本指南直接连接到为本地Prisma集群(cluster)的MySQL数据库。
如果您使用prisma local start
来启动您的本地Prisma集群(cluster),那么您将运行两个容器(container):
-
prisma
:正在运行主要的Prisma服务; -
prisma-db
:正在运行存储数据的MySQL服务器。
本指南介绍了如何连接到本地MySQL服务器,以便直接查询和更新数据。
以下,我们假设您有一个当地的Prisma服务正在运行。
1.获取运行MySQL数据库的Docker容器的名称
列出您正在运行的Prisma Docker容器:
docker ps --filter name=prisma
验证是否有名称为prisma-db
镜像(image)为mysql:5.7
的容器。
2.打开MySQL 客户端
要在终端中打开MySQL客户端,请运行以下命令。请注意,prisma-db
是上面列表中的容器名称:
docker exec -it prisma-db mysql -u root --host 127.0.0.1 --port 3306 --password=graphcool
密码将在即将发布的版本中更改为
prisma
。
3.将SQL查询发送到数据库
一旦MySQL客户端打开,您可以询问当前可用的数据库:
show databases;
这将打印下面的输出:
+---------------------------+
| Database |
+---------------------------+
| information_schema |
| prisma |
| logs |
| mysql |
| performance_schema |
| sys |
| <service-id> |
+---------------------------+
从可用的数据库中,以下三个与您相关:
- <service-id>:此数据库的名称是服务的名称和stage的组合。它看起来像这样:
service @ stage
。它包含有关用于生成GraphQL schema的服务的元信息。 -
prisma
:该数据库包含有关Prisma服务定义的元信息。
您现在可以使用use
命令选择其中一个数据库,例如,如果您的<service-id>
是my-service @ dev
,然后运行:
use my-service@dev;
你可以像这样列出表格:
show tables;
输出
+----------------------+
| Tables_in_my-app@dev |
+----------------------+
| Post |
| _RelayId |
+----------------------+
现在您可以开始编写查询:
SELECT * FROM Post;
输出
+---------------------------+---------------------+---------------------+-------------+----------------------+-------------------------------------------------+
| id | createdAt | updatedAt | isPublished | title | text |
+---------------------------+---------------------+---------------------+-------------+----------------------+-------------------------------------------------+
| cjc82o6cg000b0135wpxgybf6 | 2018-01-09 20:12:02 | 2018-01-09 20:12:02 | 1 | Hello World | This is my first blog post ever! |
| cjc82o6mo000d013599yzlwls | 2018-01-09 20:12:02 | 2018-01-09 20:12:02 | 1 | My Second Post | My first post was good, but this one is better! |
| cjc82o6n4000f01350jortmv2 | 2018-01-09 20:12:02 | 2018-01-09 20:12:02 | 0 | Solving World Hunger | This is a draft... |
+---------------------------+---------------------+---------------------+-------------+----------------------+-------------------------------------------------+
你可以像这样退出MySQL:
exit;
网友评论