问题描述
我的目标是通过名为 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.
由于我没有设法让它工作,非常感谢任何帮助!
解决方法
经过一番研究,我通过以下步骤解决了这个问题:
- 我删除了之前创建的 .monetdb 文件。
- 我通过以下方式创建了一个名为
mydbfarm
的 dbfarm:monetdbd create mydbfarm
- 我配置了用于连接
monetdbd
中的数据库的 monetdb 守护进程mydbfarm
,以通过以下方式侦听端口 54321:monetdbd set port=54321 mydbfarm
- 我通过以下方式创建了名为
mydbfarm
的 dbfarm:monetdbd start mydbfarm
- 我通过以下方式创建了一个名为
mydb
的数据库:monetdb -p 54321 create mydb
- 我通过以下方式发布了
mydb
:monetdb -p 54321 release mydb
- 我通过以下方式开始了
mydb
:monetdb -p 54321 start mydb
- 我通过以下方式连接到
mydb
思想 mclient:mclient -d mydb -p 54321
。我输入monetdb
作为用户,再次输入monetdb
作为密码 - 如果所有步骤都正确完成,SQL 提示应该开始。
- 我继续使用以下命令创建一个
user
jpriest 和password
monetdb,name
inpap 和schema
"sys" 通过:CREATE USER "jpriest" WITH PASSWORD 'monetdb' NAME 'inpap' SCHEMA "sys";
- 之后,我使用 \q 退出 sql 提示符并再次连接到 mydb,但这次使用的是我在步骤 10 中通过以下方式创建的用户
jpriest
:mclient -d mydb -p 54321
并键入 {{1 }}jpriestuser
monetdb - 然后在 sql 提示中,我们通过以下命令将用户 jpriest 的密码从
password
更改为monetdb
:pass
; - 然后退出提示并使用以下内容创建 .monetdb 文件:
ALTER USER SET PASSWORD 'pass' USING OLD PASSWORD 'monetdb'
将允许您始终以 user=jpriest
password=pass
language=sql
jpriest 的身份登录,并使用 user
pass