【发布时间】:2022-01-09 18:16:30
【问题描述】:
我正在关注 Ben Awad 的 youtube tutorial 编写一个完整的堆栈应用程序。我正在将 MikroORM 与 postgres 一起使用。
我创建了一个名为tut 的数据库,一个名为tut 的用户,然后授予该用户访问该数据库的权限。我可以像这样验证用户是否可以访问数据库:
$ su - tut
Password:
user:/home/tut$ psql
tut=>
这是我的 mikro-orm.config.ts 的样子:
import {Post} from "../entities/Post";
import {MikroORM} from "@mikro-orm/core";
import path from "path"
export default {
migrations: {
path: path.join(__dirname, "./migrations"),
pattern: /^[\w-]+\d+.*\.[tj]s$/
},
entities: [Post],
dbName: 'tut',
user: 'tut',
password: 'tut',
type: 'postgresql',
debug: process.env.NODE_ENV !== 'production',
} as Parameters<typeof MikroORM.init>[0]
当我尝试连接到 index.ts 中的数据库时,我收到“MikroORM 无法连接到 postgresql://tut:*****@127.0.0.1:5432 上的数据库 tut”(错误代码 28P01) .
我应该在 localhost 上运行 psql 服务器吗?据我所知,本教程没有让你这样做。
【问题讨论】:
-
错误代码
28P01是Error codes 中的“invalid_password”。最好的猜测是数据库用户tut在数据库中没有密码。您在问题su的顶部向操作系统用户tut显示的序列然后使用没有数据库密码的套接字登录。尝试(作为任何操作系统用户)psql -d tut -U tut -h 127.0.0.1,您将看到密码错误。执行“psql -d tut -U tut”,我猜你会连接。 -
修复为用户
tut创建数据库密码或计算如何配置MikroORM以连接到套接字。
标签: postgresql graphql mikro-orm