Node.js+ArangoDB报错:Failed to create database: { ArangoError: not authorized to execute this request

按照官网教程操作创建数据库:

// 引包
var Database = require('arangojs').Database
var db = new Database('http://127.0.0.1:8529');
db.createDatabase('mydb').then(
    () => console.log('Database created'),
    err => console.error('Failed to create database:', err)
);

报错:Failed to create database: { ArangoError: not authorized to execute this request

权限 问题(连接 arangodb 使用的 user 没有访问 system 数据库的权限),解决方案:使用 root 用户登录 system 数据库

代码改为:

// 引包
var Database = require('arangojs').Database
const username = 'root' // default user
const password = '' // blank password by default
var db = new Database('http://127.0.0.1:8529');
db.useBasicAuth(username, password);
db.createDatabase('mydb1').then(
    () => console.log('Database-mydb1 created'),
    err => console.error('Failed to create database-mydb1:', err)
);

错误解决,控制台成功输出:

Database-mydb1 created



其它补充:

  • 引包的时候可以不指明 .Database
  • 可以在上方定义 username 和 password 的时候同时定义 host 和 port

🌰:

// 引包
var arangojs = require('arangojs')
const host = '127.0.0.1'
const port = '8529'
const username = 'root' // default user
const password = '' // blank password by default
const database = '_system'
db = new arangojs.Database({
    url: `http://${host}:${port}`,
    databaseName: database
});
db.useBasicAuth(username, password);
db.createDatabase('mydb2').then(
    () => console.log('Database-mydb2 created'),
    err => console.error('Failed to create database-mydb2:', err)
);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章