[root@master nova]# su -s /bin/sh -c "nova-manage api_db sync" nova
An error has occurred:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 2382, in main
ret = fn(*fn_args, **fn_kwargs)
File "/usr/lib/python2.7/site-packages/nova/cmd/manage.py", line 884, in sync
result = migration.db_sync(version2, database='placement')
File "/usr/lib/python2.7/site-packages/nova/db/migration.py", line 26, in db_sync
return IMPL.db_sync(version=version, database=database, context=context)
File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 57,
in db_sync current_version = db_version(database, context=context)
File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 70,
in db_version return versioning_api.db_version(get_engine(database, context=context),
File "/usr/lib/python2.7/site-packages/nova/db/sqlalchemy/migration.py", line 47,
in get_engine return placement_db.get_placement_engine()
File "/usr/lib/python2.7/site-packages/nova/api/openstack/placement/db_api.py", l
ine 43, in get_placement_engine return placement_context_manager.get_legacy_facade().get_engine()
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line
803, in get_legacy_facade return self._factory.get_legacy_facade()
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line
352, in get_legacy_facade self._start()
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line
496, in _start engine_args, maker_args)
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py", line
520, in _setup_for_connection sql_connection=sql_connection, **engine_kwargs)
File "/usr/lib/python2.7/site-packages/debtcollector/renames.py", line 43, in dec
orator return wrapped(*args, **kwargs)
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 175,
in create_engine json_deserializer=json_deserializer,
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/utils.py", line 934, in
call self._url_from_target(target), target, arg, kw)
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/utils.py", line 971, in
_dispatch_on return self._dispatch_on_db_driver(dbname, driver, arg, kw)
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/utils.py", line 1025, i
n _dispatch_on_db_driver if self._invoke_fn(fn, arg, kw) is not None:
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/utils.py", line 974, in
_invoke_fn return fn(*arg, **kw)
File "/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py", line 213,
in _init_connection_args pool_class = url.get_dialect().get_pool_class(url)
File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py", line 171, in
get_dialect entrypoint = self._get_entrypoint()
File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py", line 156, in
_get_entrypoint cls = registry.load(name)
File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 22
1, in load (self.group, name))
NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:mysql.pymsql
su -s /bin/sh -c "nova-manage api_db sync" nova报错
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
阿里嘎多学长 2024-06-08 13:31关注以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
根据您提供的错误信息,这个问题是关于在使用
nova-manage命令行工具时遇到的NoSuchModuleError,具体是sqlalchemy.dialects:mysql.pymsql模块无法加载。这个问题可能由多种原因引起,例如环境配置问题、依赖库缺失或版本不匹配等。首先,我建议您检查Python环境中是否安装了
pymysql库,因为sqlalchemy使用这个库作为MySQL的驱动。您可以使用以下命令来安装或更新pymysql:pip install --upgrade pymysql如果问题依旧,可能需要确保
sqlalchemy库的版本与pymysql兼容。您可以尝试降级sqlalchemy到一个已知兼容的版本,例如:pip install --upgrade sqlalchemy==1.0.14此外,根据搜索结果[^3^],有用户通过将
sqlalchemy版本从1.3.12降级到1.0.14解决了类似的问题。如果上述方法仍然无法解决问题,您可以查看OpenStack的官方文档[^10^][^11^],了解
nova-manage命令的更多信息和使用方法。对于具体的代码实现,通常不需要修改代码来解决这个问题,因为这是一个环境配置或依赖问题。但是,如果您需要在Python代码中指定数据库连接,确保您的数据库URI格式正确,例如:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://user:password@host:port/dbname'请根据您的实际数据库配置替换
user、password、host、port和dbname。最后,这里提供了一些参考链接,您可以通过这些链接获取更多信息:
解决 无用评论 打赏 举报 编辑记录