Невозможно подключиться к Neo4j с помощью NeoClient для переполнения стека

Я новичок в Neo4j. Я использую Neo4jPHP с WAMP, чтобы попытаться проверить мое соединение с базой данных Neo4j с помощью следующего кода:

require('vendor/autoload.php');

$client = new Everyman\Neo4j\Client('localhost', 7474);
print_r($client->getServerInfo());

Но когда я запускаю приведенный выше код, я получаю следующие ошибки:

Неустранимая ошибка: необработанное исключение «Everyman \ Neo4j \ Exception» с сообщением »в C: \ wamp \ www \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php в строке 116

Everyman \ Neo4j \ Exception: Невозможно получить информацию о сервере [401]: Заголовки: Массив ([Дата] => Вторник, 08 сентября 2015 21:48:28 GMT [Content-Type] => application / json; charset = UTF- 8 [WWW-Authenticate] => Нет [Content-Length] => 144 [Server] => Jetty (9.2.z-SNAPSHOT)) Тело: Массив ([ошибки] => Массив ([0] => Массив ([ message] => Не указан заголовок авторизации. [code] => Neo.ClientError.Security.AuthorizationFailed))) в C: \ wamp \ www \ vendor \ everyman \ neo4jphp \ lib \ Everyman \ Neo4j \ Command.php в строке 116

Как я уже сказал, я новичок в Neo4j, поэтому я не знаю, что я могу делать неправильно. Neo4j запущен, и я смог проверить его, подключившись к localhost:7474

Любая помощь приветствуется!

1

Решение

Я думаю, что 401 означает, что Neo4j требует аутентификации. Глядя на neo4jphp, я не уверен, что он поддерживает аутентификацию Neo4j по умолчанию, которая была представлена ​​в Neo4j 2.2.0.

Вы можете проверить NeoClient. Из README код для подключения с именем пользователя и паролем будет выглядеть примерно так:

$client = ClientBuilder::create()
->addConnection('default', 'http', 'myserver.dev', 7474, true, 'username', 'password')
->build();

Если вы действительно хотите использовать neo4jphp, вы можете отключить аутентификацию (конечно, не рекомендуется, если вы не защитили базу данных иным образом). Существует также эта проблема в репо, которая может быть полезна:

https://github.com/jadell/neo4jphp/issues/165

1

Другие решения

это может решить проблему. Замените HOSTNAME, PORT, USER и PASSWORD своими значениями.

$client = new Everyman\Neo4j\Client(HOSTNAME, PORT);
$client->getTransport()->setAuth(USER, PASSWORD);
0

По вопросам рекламы [email protected]