Как подключить Cassandra к localhost с помощью cqlsh?
Я устанавливаю rpc_port на общедоступный IP-адрес, и теперь я могу подключиться к Cassandra просто отлично от внешнего сервера.
Однако я не могу соединиться с самим сервером Cassandra, используя cqlsh
Я получаю сообщение об ошибке. Это:
Connection error: Could not connect to localhost:9160
Есть ли конфигурация, которую я могу изменить, чтобы иметь возможность подключиться с самого сервера?
Ответы
Ответ 1
- Обычно проверьте
cassandra.yaml
файл в строке с rpc_port :
по умолчанию = 9160
- Войдите в систему хостинга
cassandra
- Попробуйте
cqlsh 127.0.0.1 9160
: должно быть хорошо в любом случае
- try
cqlsh [IP of host] 9160
: если ok, то cassandra
достижим из lan, если ok, то cassandra
недоступен из lan
, а только localhost 127.0.0.1
Ответ 2
Вам необходимо подключиться к кассандре через rpc_address
, определенную в cassandra.yaml
. Например, я использую cqlsh 10.0.80.49 9160
.
Ответ 3
Рассмотрим изменение /etc/cassandra.yaml
:
# Whether to start the thrift rpc server.
start_rpc: false
к
start_rpc: true
Ответ 4
если вы видите это в журналах cassandra:
INFO [main] 2015-07-21 12:06:27,426 CassandraDaemon.java:406 - Not starting RPC server as requested. Use JMX (StorageService->startRPCServer()) or nodetool (enablethrift) to start it
то просто откройте терминал и
$ nodetool enablethrift
как указано в сообщении INFO. Должна работать. Получил это, когда моя система обновилась до cassandra 2.2.0
Ответ 5
Если вы на OSX
brew install cassandra
Сначала запусти Кассандру
cassandra
Подключение через оболочку CQL
cqlsh 127.0.0.1
![enter image description here]()
Ответ 6
Возможно, сначала запустите cassandra на вашей локальной машине с помощью bin/cassandra -f
?
Ответ 7
Он не слушает 127.0.0.1
, так как вы сказали ему слушать только <public IP>
. Сделайте адрес прослушивания 0.0.0.0
для прослушивания по всем адресам (или просто опустите его, если это возможно, поскольку обычно это значение по умолчанию). См. Listening Sockets.NET tutorial или любое другое учебное пособие по сокету, чтобы получить базовое представление о привязке сокетов.
Обновить (@c45556037):
Обратите внимание, что listen_address
- это тот, который используется другими узлами для подключения к этому (вводящее в заблуждение имя). rpc_address
- это фактический адрес для локальной привязки. Это неясно из 2.0 docs и лучше объясняется в 1.0 docs.
Ответ 8
Я столкнулся с такой же ситуацией при запуске cqlsh. Я получил следующую ошибку при запуске cassandra
Введите только ---- cassandra ----- в терминал.
он отобразит все банки и файлы журналов. если терминал зависает, просто выйдите из него, а затем введите cqlsh. то он войдет в cassandra cli.
Это сработало для меня
Ответ 9
Исключение соединения с localhost/9160. причина: подключение отказано
Соединение отказалось от режима classandra cli.
перейти в корневой каталог cassandra:
bin/cassandra -- host {host-ip} --port {9160}
если у вас возникли проблемы с этим, проверьте свой каталог {cassandra-root-directory}/conf/cassandra.yaml
транзакция ip или rpc_address - это адрес, используемый как host-ip для подключения к cli.
сделайте его локальным IP-адресом, и если у вас возникли проблемы с подключением с помощью порта 9160, попробуйте изменить rpc_port на 8070 и теперь попробуйте подключиться к режиму cassandra-cli с помощью команды
bin/cassandra --host {local-IP} --port 8070
Это сработало для меня, надеюсь, что это сработает и для вас.
Ответ 10
для 2.0.5
для меня работает следующее.
$CASSANDRA_HOME/bin/cqlsh xx.xx.xxx.xxx 9160
Ответ 11
Для решения проблемы выполните приведенный ниже запрос
#!/bin/bash
export CASSANDRA_HOME=/opt/apache-cassandra-2.1.8
export CQLSH_HOST=192.168.1.200
export CQLSH_PORT=9042
echo [email protected]
$CASSANDRA_HOME/bin/cqlsh [email protected]'
Обязательно измените IP-адрес и местоположение каталога cassandra Home
Ответ 12
Используйте эту команду
sudo service cassandra start
чтобы запустить cassandra, а затем используйте
cqlsh command
Ответ 13
Рассмотрим изменение /etc/cassandra -env.sh:
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true"
not "true" but "false"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"
sudo service cassandra restart
Ответ 14
Как изменить порт по умолчанию 9042 в Кассандре?
Я решил проблему, используя следующие шаги:
1) Остановить услуги Кассандара
sudo su -
systemctl stop datastax-agent
systemctl stop opscenterd
systemctl stop app-dse
2) Возьмите резервную копию и измените порт с 9042 на 9035
cp /opt/dse/resources/cassandra/conf/cassandra.yaml /opt/dse/resources/cassandra/conf/bkp_cassandra.yaml
vi /opt/dse/resources/cassandra/conf/cassandra.yaml
native_transport_port: 9035
3) Запустить услуги Кассандры
systemctl start datastax-agent
systemctl start opscenterd
systemctl start app-dse
4) создать файл cqlshrc.
vi /root/.cassandra/cqlshrc
[connection]
hostname = 198.168.1.100
port = 9035