在 MySQL Workbench 中调用 Python 模块函数时出错
Posted
技术标签:
【中文标题】在 MySQL Workbench 中调用 Python 模块函数时出错【英文标题】:Error calling Python module function in MySQL Workbench 【发布时间】:2014-04-06 12:23:33 【问题描述】:我有点不知所措,到目前为止,还没有来自 mysql Workbench 错误报告网站的反馈,所以我想我会把这个问题/问题抛给更多网站。
我正在尝试从 Windows Server 2003 机器上的 MSSQL 服务器迁移到 Centos 6.5 VM 上运行的 MySQL 服务器。我可以连接到源数据库和目标数据库,选择一个模式,并通过一次传递来检索表。在此之后,该过程失败并引发以下错误:
回溯(最近一次通话最后): 文件“/usr/lib64/mysql-workbench/modules/db_mssql_grt.py”,第 409 行,在 reverseEngineer 中 reverseEngineerProcedures(连接,模式) 文件“/usr/lib64/mysql-workbench/modules/db_mssql_grt.py”,第 1016 行,在 reverseEngineerProcedures 对于 idx, (proc_count, proc_name, proc_definition) in enumerate(cursor): 内存错误 回溯(最近一次通话最后): 文件“/usr/share/mysql-workbench/libraries/workbench/wizard_progress_page_widget.py”,第 192 行,在 thread_work self.func() 文件“/usr/lib64/mysql-workbench/modules/migration_schema_selection.py”,第 160 行,在 task_reveng self.main.plan.migrationSource.reverseEngineer() 文件“/usr/lib64/mysql-workbench/modules/migration.py”,第 353 行,在 reverseEngineer 中 self.state.sourceCatalog = self._rev_eng_module.reverseEngineer(self.connection, self.selectedCatalogName, self.selectedSchemataNames, self.state.applicationData) SystemError: MemoryError(""): 调用 Python 模块函数 DbMssqlRE.reverseEngineer 时出错 错误:逆向工程师选择了架构:MemoryError(""):调用 Python 模块函数 DbMssqlRE.reverseEngineer 时出错 失败的我认为这最初是一个内存错误,所以我将盒子上的内存提高到了 16 GiB。这个错误也会发生在任何大小的数据库上,因为我尝试了非常小的数据库,几乎没有任何表。
有什么想法吗?感谢观看
【问题讨论】:
【参考方案1】:以防万一其他人遇到这种情况。我遇到了同样的问题,并通过删除模式、表中的非 ASCII 字符来解决它......基本上所有的 MSSQL 对象。这被我安装了 SQL# (www.sqlsharp.com) 的事实弄糊涂了,它添加了许多函数并使用名为 SQL# 的模式存储了过程。您可以使用以下命令将其删除:
EXEC SQL#.SQLsharp_Uninstall
一旦你摆脱了非 ASCII 字符,迁移就可以工作了。
【讨论】:
好的,但是如果脚本中确实需要非 ASCII 字符,该如何解决?以上是关于在 MySQL Workbench 中调用 Python 模块函数时出错的主要内容,如果未能解决你的问题,请参考以下文章
不支持 Mariadb 10 Mysql Workbench 维护
SQL Server 到 Mysql 的迁移(使用 Mysql Workbench)。如何在 Workbench 向导的步骤中添加带有手动转义撇号的数据?