Невозможно подключиться к базе данных Neo4j Desktop, используя последнюю версию Neo4j, новую базу данных и django_neomodel (ошибка аутентификации)
Поэтому он выбрасывает исключение:
neo4j.exceptions.AuthError: {code: Neo.ClientError.Security.Unauthorized} {message: The client is unauthorized due to authentication failure.}
Но я поднялся на несколько уровней в исключениях и вот:
auth
имеет значение "Нет" по существу.
Мои глобальные переменные выглядят следующим образом:
Я предполагаю, что это что-то не так с моей настройкой django_neomodel, но у меня установлен django_neomodel и добавлен в INSTALLED_APPS моего проекта Django.
Причина, по которой имя пользователя/пароль не neo4j, заключается в том, что neo4j:neo4j не работает (невозможно установить пароль neo4j в последнем настольном приложении), как и neo4j:ArrowGlue (пароль, который я думал, что установил при создании новой базы данных).
Поэтому на вкладке базы данных Neo4j Browser я сыграл ":server user add" и добавил ArrowGlue:ArrowGlue в качестве роли уровня администратора.
Теперь я понял, что дело в том, что я использовал переменную URL как прямую переменную окружения. Так что меняем ее в settings.py, и я нахожусь на следующем этапе этой проблемы с подключением:
File "C:\Python311\Lib\site-packages\neo4j\_sync\io\_bolt.py", line 808, in fetch_message
res = self._process_message(tag, fields)
File "C:\Python311\Lib\site-packages\neo4j\_sync\io\_bolt5.py", line 361, in _process_message
response.on_failure(summary_metadata or {})
File "C:\Python311\Lib\site-packages\neo4j\_sync\io\_common.py", line 247, in on_failure
raise Neo4jError.hydrate(**metadata)
neo4j.exceptions.ClientError: {code: Neo.ClientError.Security.CredentialsExpired} {message: ACCESS on database 'neo4j' is not allowed.
The credentials you provided were valid, but must be changed before you can use this instance. If this is the first time you are using Neo4j, this is to ensure you are not using the default credentials in production. If you are not using default credentials, you are getting this message because an administrator requires a password change.
To change your password, issue an `ALTER CURRENT USER SET PASSWORD FROM 'current password' TO 'new password'` statement against the system database.}
Я решил эту проблему. Во-первых, NEOMODEL_NEO4J_BOLT_URL должен быть в settings.py (определен там; так что загрузите его безопасно из среды).
NEOMODEL_NEO4J_BOLT_URL = 'bolt://neo4j:ArrowGlue@localhost:7687'
сработал для меня, где пароль ArrowGlue, который я установил ранее на определенном этапе. Пользователь, которого я создал, все еще не работает. Но это достаточно хорошо, чтобы пройти мимо.
Я знаю, что на этот раз он подключился, потому что он прошел через код создания узла без ошибки аутентификации и новый ярлык модели "Узел" отображается как цветной тег в Neo4j Browser.