monetdb:为 monetdb 以外的用户正确创建和设置配置文件 .monetdb

问题描述

我的目标是通过名为 mydb新用户而不是用户 jpriest 连接到新创建的名为 monetdb数据库

按照这个问题 monetdb: switch off password on mclient 和提供的答案,我在当前工作目录中配置了一个包含以下内容的 .monetdb 文件

user=jpriest
password=mypassword
language=sql 

但是我收到以下错误消息

InvalidCredentialsException:checkCredentials:invalid credentials for user 'jpriest'

我正在努力遵循 Getting Started 部分指出:

To connect/login to the database server the first time,you must use monetdb as user name and enter its default password: monetdb.

Once connected you may create new users,create new schemas,create tables etc.
It is also strongly recommended to change the default password of the monetdb system user
via ALTER USER SET PASSWORD command.

由于我没有设法让它工作,非常感谢任何帮助!

解决方法

经过一番研究,我通过以下步骤解决了这个问题:

  1. 我删除了之前创建的 .monetdb 文件。
  2. 我通过以下方式创建了一个名为 mydbfarm 的 dbfarm:monetdbd create mydbfarm
  3. 我配置了用于连接 monetdbd 中的数据库的 monetdb 守护进程 mydbfarm,以通过以下方式侦听端口 54321:monetdbd set port=54321 mydbfarm
  4. 我通过以下方式创建了名为 mydbfarm 的 dbfarm:monetdbd start mydbfarm
  5. 我通过以下方式创建了一个名为 mydb 的数据库:monetdb -p 54321 create mydb
  6. 我通过以下方式发布了 mydbmonetdb -p 54321 release mydb
  7. 我通过以下方式开始了 mydbmonetdb -p 54321 start mydb
  8. 我通过以下方式连接到 mydb 思想 mclient:mclient -d mydb -p 54321。我输入 monetdb 作为用户,再次输入 monetdb 作为密码
  9. 如果所有步骤都正确完成,SQL 提示应该开始。
  10. 我继续使用以下命令创建一个 user jpriestpassword monetdb,name inpap 和 schema "sys" 通过:CREATE USER "jpriest" WITH PASSWORD 'monetdb' NAME 'inpap' SCHEMA "sys";
  11. 之后,我使用 \q 退出 sql 提示符并再次连接到 mydb,但这次使用的是我在步骤 10 中通过以下方式创建的用户 jpriestmclient -d mydb -p 54321 并键入 {{1 }}jpriest usermonetdb
  12. 然后在 sql 提示中,我们通过以下命令将用户 jpriest 的密码从 password 更改为 monetdbpass;
  13. 然后退出提示并使用以下内容创建 .monetdb 文件:
ALTER USER SET PASSWORD 'pass' USING OLD PASSWORD 'monetdb'

将允许您始终以 user=jpriest password=pass language=sql jpriest 的身份登录,并使用 user pass