При запуске оболочки cqlsh выдается ошибка подключения к базе данных cassandra. - PullRequest
1 голос
/ 01 октября 2019

Я пытаюсь соединиться с cqlsh, но выдает следующую ошибку:

Connection error: ('Unable to connect to any servers', {'127.0.0.1': 
    error(111, "Tried connecting to [('127.0.0.1', 9042)].
    Last error: Connection refused")})

Я пробовал команду cqlsh на терминале:

cqlsh

Ответы [ 3 ]

0 голосов
/ 01 октября 2019

Существует несколько сценариев, которые могут ответить на ваш вопрос: 1) Cassandra не работает 2) Cassandra не прослушивает / не работает с этим хостом / IP (127.0.0.1) 3) Cassandra не прослушивает порт 90424) Брандмауэр блокирует этот хост / порт

1) Убедитесь, что он работает с

ps -ef | grep cassandra (or dse if using dse)

2) Проверьте native_transport_address в cassandra.yaml, чтобы увидеть IP-адрес, используемый для хоста. 0.0.0.0 прекрасно (если вы установили native_transport_broadcast_address)

3) Проверьте native_transport_port в cassandra.yaml, чтобы увидеть используемый порт

4) Telnet для хоста / порта, чтобы ничего не гарантироватьнаходится в пути

telnet 127.0.0.1 9042

Вы должны увидеть вывод, который выглядит примерно так:

Connected to XXXXXXXX.
Escape character is '^]'.

Если вы этого не сделаете, и все другие проверки пройдены, что-то мешает(брандмауэр).

Обратите внимание, что параметры, используемые в cassandra.yaml, относятся к Cassandra 3.11 (я полагаю, dse 5.X +). При использовании более старых версий параметры отличаются.

-Jim

0 голосов
/ 02 октября 2019

Я получил решение, два запроса должны быть выполнены один за другим, следующие за терминалом.

  1. cassandra
  2. cqlsh 127.0.0.1 9042 (порт)
0 голосов
/ 01 октября 2019

Это происходит потому, что вы не предоставляете IP-адрес для подключения cqlsh. Затем он принимает «домашний» IP (127.0.0.1), и я предполагаю, что у вас нет работающего узла Cassandra, связанного с этим адресом.

Сначала grep для адреса, который ваш узелпривязан к:

$ grep "_address:" cassandra.yaml 

listen_address: 192.168.1.3 
broadcast_address: 10.2.1.30
rpc_address: 192.168.1.3 
broadcast_rpc_address: 10.2.1.30

Если ваши broadcast_ адреса отличаются от определенных адресов listen / rpc, вы должны использовать этот (внутренние против внешних IP-адресов ... вы хотите внешние). В этом случае команда cqlsh будет выглядеть примерно так:

cqlsh 10.2.1.30 -u username -p password
...