No sql_connection parameter is established

实验环境为Pike版本,其他版本仅供参考。
在devstack多节点部署中,创建虚机可能会出现下面的错误:

Message
No sql_connection parameter is established
Code
500
Details
File "/opt/stack/nova/nova/conductor/manager.py", line 551, in build_instances context, spec_obj, instance_uuids) File "/opt/stack/nova/nova/conductor/manager.py", line 622, in _schedule_instances scheduler_utils.setup_instance_group(context, request_spec) File "/opt/stack/nova/nova/scheduler/utils.py", line 443, in setup_instance_group group_info = _get_group_details(context, instance_uuid, group_hosts) File "/opt/stack/nova/nova/scheduler/utils.py", line 400, in _get_group_details instance_uuid) File "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 184, in wrapper result = fn(cls, context, *args, **kwargs) File "/opt/stack/nova/nova/objects/instance_group.py", line 331, in get_by_instance_uuid db_group = cls._get_from_db_by_instance(context, instance_uuid) File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 978, in wrapper with self._transaction_scope(context): File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__ return self.gen.next() File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 1028, in _transaction_scope context=context) as resource: File "/usr/lib64/python2.7/contextlib.py", line 17, in __enter__ return self.gen.next() File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 633, in _session bind=self.connection, mode=self.mode) File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 398, in _create_session self._start() File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 484, in _start engine_args, maker_args) File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line 506, in _setup_for_connection "No sql_connection parameter is established")
Created
Aug. 9, 2017, 6:10 a.m.

原因是缺少数据库连接参数。
在出现问题的节点(一般是计算节点)添加下面的配置项目:

[database]
connection = mysql+pymysql://root:secret@192.168.111.69/nova_cell0?charset=utf8

[api_database]
connection = mysql+pymysql://root:secret@192.168.111.69/nova_api?charset=utf8

这里注意数据库分别是 nova_cell0 为 devstack创建的第一个cell数据库。

这个错误提示显示了几个问题: 1. "Parameter count mismatch" 错误表示参数数量不匹配。这意味着你的查询语句中的参数数量与实际提供的参数数量不一致。请确保你正确地设置了 `username` 参数的值,并且确保你没有在查询语句中多次使用了同一个参数。 2. "QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work." 错误表示当前的数据库连接仍在使用中,导致无法执行查询。在你的代码中,你使用了名为 'qt_sql_default_connection' 的数据库连接,但在执行删除操作之前,可能还存在其他正在使用该连接的操作。确保在执行删除操作之前,你已经释放了之前的所有数据库操作和连接。 3. "QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed." 错误表示你尝试添加一个重复名称的数据库连接。确保在添加数据库连接之前,你已经移除了之前存在的同名连接。 4. "QSqlQuery::prepare: database not open" 错误表示数据库未成功打开。在执行查询之前,确保你已经成功打开了数据库连接。你可以通过检查 `db1.open()` 的返回值来确认数据库是否已经成功打开。 综上所述,你需要检查以下几个方面: - 确保正确设置了 `username` 参数的值。 - 确保在执行删除操作之前,释放了之前的所有数据库操作和连接。 - 确保没有重复添加相同名称的数据库连接。 - 确保数据库成功打开后再执行查询操作。 希望这些解释能帮助你找到并解决问题!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值