无法从 Python 代码连接到 Cassandra
Unable to Connect to Cassandra from Python code
我无法从 python 连接 cassandra,出现以下错误
Traceback (most recent call last):
File "/app/script_max_device_count.py", line 232, in <module>
max_device_count.get_max_device_count_per_partner(partners_dict)
File "/app/script_max_device_count.py", line 199, in get_max_device_count_per_partner
session = self.establish_cassandra_connection()
File "/app/script_max_device_count.py", line 137, in establish_cassandra_connection
session = Cluster([cassandra_host], port=cassandra_port, auth_provider=auth_provider).connect()
File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 1358, in connect
self.control_connection.connect()
File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 2896, in connect
self._set_new_connection(self._reconnect_internal())
File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 2939, in _reconnect_internal
raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'1XX.XX.X.X:9042': ValueError("invalid literal for int() with base 10: '3-E000'")})
使用的版本
python = 3.7.4
cassandra-driver==3.18.0
Linux环境
安装的 cassandra
[cqlsh 5.0.1 | Cassandra 3.11.3-E000 | CQL spec 3.4.4 | Native protocol v4]
示例cassandra代码连接
``
def establish_cassandra_connection(self):
db_config = DatabaseConfig()
cassandra_host = db_config.get_cassandra_host()
cassandra_port = int(db_config.get_cassandra_port())
cassandra_username = db_config.get_cassandra_username()
cassandra_password = db_config.get_cassandra_password()
auth_provider = PlainTextAuthProvider(username=cassandra_username, password=cassandra_password)
# connection.setup can have multiple host can be added as a list.
session = Cluster([cassandra_host], port=cassandra_port, auth_provider=auth_provider).connect()
logger.info("Cassandra Connection Established.")
return session
``
我能够解决这个问题,这是由于 cassandra 驱动程序问题
cassandra-driver==3.18.0 无法使用“Cassandra 3.11.3-E000”的 linix 版本
docker 图像中 assandra-driver==3.14.0 的更改版本工作正常
我无法从 python 连接 cassandra,出现以下错误
Traceback (most recent call last):
File "/app/script_max_device_count.py", line 232, in <module>
max_device_count.get_max_device_count_per_partner(partners_dict)
File "/app/script_max_device_count.py", line 199, in get_max_device_count_per_partner
session = self.establish_cassandra_connection()
File "/app/script_max_device_count.py", line 137, in establish_cassandra_connection
session = Cluster([cassandra_host], port=cassandra_port, auth_provider=auth_provider).connect()
File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 1358, in connect
self.control_connection.connect()
File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 2896, in connect
self._set_new_connection(self._reconnect_internal())
File "/usr/local/lib/python3.7/site-packages/cassandra/cluster.py", line 2939, in _reconnect_internal
raise NoHostAvailable("Unable to connect to any servers", errors)
cassandra.cluster.NoHostAvailable: ('Unable to connect to any servers', {'1XX.XX.X.X:9042': ValueError("invalid literal for int() with base 10: '3-E000'")})
使用的版本
python = 3.7.4
cassandra-driver==3.18.0
Linux环境
安装的 cassandra
[cqlsh 5.0.1 | Cassandra 3.11.3-E000 | CQL spec 3.4.4 | Native protocol v4]
示例cassandra代码连接
``
def establish_cassandra_connection(self):
db_config = DatabaseConfig()
cassandra_host = db_config.get_cassandra_host()
cassandra_port = int(db_config.get_cassandra_port())
cassandra_username = db_config.get_cassandra_username()
cassandra_password = db_config.get_cassandra_password()
auth_provider = PlainTextAuthProvider(username=cassandra_username, password=cassandra_password)
# connection.setup can have multiple host can be added as a list.
session = Cluster([cassandra_host], port=cassandra_port, auth_provider=auth_provider).connect()
logger.info("Cassandra Connection Established.")
return session
``
我能够解决这个问题,这是由于 cassandra 驱动程序问题 cassandra-driver==3.18.0 无法使用“Cassandra 3.11.3-E000”的 linix 版本
docker 图像中 assandra-driver==3.14.0 的更改版本工作正常