在MySQL Workbench中调用Python模块函数时出错怎么办?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (438)

到目前为止,我还没有收到来自MySQLWorkbench bug报告站点的反馈,所以我想我会把这个问题/问题抛到更多的网站上。

我试图从Windows Server 2003机器上的MSSQL服务器迁移到运行在CentOS6.5VM上的MySQL服务器。我可以连接到源数据库和目标数据库,选择一个模式,并通过一次遍历来检索表。在此之后,进程失败并引发以下错误:

Traceback (most recent call last):
  File "/usr/lib64/mysql-workbench/modules/db_mssql_grt.py", line 409, in reverseEngineer
    reverseEngineerProcedures(connection, schema)
  File "/usr/lib64/mysql-workbench/modules/db_mssql_grt.py", line 1016, in reverseEngineerProcedures
    for idx, (proc_count, proc_name, proc_definition) in enumerate(cursor):
MemoryError

Traceback (most recent call last):
  File "/usr/share/mysql-workbench/libraries/workbench/wizard_progress_page_widget.py", line 192, in thread_work
    self.func()
  File "/usr/lib64/mysql-workbench/modules/migration_schema_selection.py", line 160, in task_reveng
    self.main.plan.migrationSource.reverseEngineer()
  File "/usr/lib64/mysql-workbench/modules/migration.py", line 353, in reverseEngineer
    self.state.sourceCatalog = self._rev_eng_module.reverseEngineer(self.connection, self.selectedCatalogName, self.selectedSchemataNames, self.state.applicationData)
SystemError: MemoryError(""): error calling Python module function DbMssqlRE.reverseEngineer
ERROR: Reverse engineer selected schemata: MemoryError(""): error calling Python module function DbMssqlRE.reverseEngineer
Failed

我认为这在本质上是内存错误,所以我把盒子上的内存增加到了16 GIB。这个错误也发生在任何大小的DB上,因为我尝试过很少大小的DBS,几乎没有任何表。

提问于
用户回答回答于

我也遇到了同样的问题,我解决了模式、表…基本上所有MSSQL对象中的非ASCII字符的问题。这让我感到困惑的是,我安装了SQL#(www.sqlserp.com),它添加了许多函数,并使用一个名为SQL#的模式存储过程。你可以使用下面的命令删除它:

EXEC SQL#.SQLsharp_Uninstall

一旦你摆脱了非ASCII字符,迁移就开始了。

扫码关注云+社区

领取腾讯云代金券