【问题标题】:Trying to restore data from MySQL Workebench 6.3 to MySQL Workbench 8.0尝试将数据从 MySQL Workbench 6.3 恢复到 MySQL Workbench 8.0
【发布时间】:2019-05-11 19:02:46
【问题描述】:

我正在尝试将我的数据/表/所有内容从 MySQL 6.3 CE 工作台移动到 MySQL 8.0 CE。

当我刚开始尝试时,我遇到并修复了这个错误 - Variable 'sql_mode' can't be set to the value of 'NO_AUTO_CREATE_USER'

现在我有一个我无法弄清楚的新错误 - 第 1991 行的错误 1359 (HY000):触发器已存在。

我在 MySQL Workbench 8 中尝试将服务器->数据导入->自包含文件放入一个完全空的数据库时遇到此错误。我对自包含文件所做的唯一更改是删除 NO_AUTO_CREATE_USER。跑完我也试过了

SET GLOBAL log_bin_trust_function_creators = 1;

在 MySql 中。

这是确切的转储代码 -

/*!50003 SET sql_mode              = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ;
DELIMITER ;;
/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`%`*/ /*!50003 TRIGGER `tab`.`history_mapinvoiceitems_BEFORE_INSERT` BEFORE INSERT ON `history_mapinvoiceitems` FOR EACH ROW
BEGIN
set @lineitemid = new.lineitemid;
set @userIdInv = new.userIdinv;
END */;;

第一行是曾经给我带来问题的行,但自从删除 NO_AUTO_CREATE_USER 之后,就可以了。我还进行了搜索以查看之前是否以某种方式定义了此触发器,但这行实际上是文档中单词的第一次出现。

其他人有这个问题/解决了吗?

【问题讨论】:

    标签: mysql mysql-workbench mysql-error-1064


    【解决方案1】:

    这里似乎有一个误解:MySQL Workbench 是一个客户端工具,类似于 MySQL 终端或 shell。它本身没有任何数据库,但连接到 MySQL 服务器以查询或更新数据(或管理服务器)。

    因此没有必要(实际上您甚至做不到)将任何 MySQL 数据从 WB 6.3 移动到 WB 8.0。

    如果您的计划是将数据从一台 MySQL 服务器(例如,旧的 5.5 安装)复制到较新的服务器(例如,8.0),则使用 MySQL Workbench 8 迁移数据。为此,请使用迁移向导,可从主屏幕的左侧边栏访问。

    【讨论】:

    • 我们希望能够使用 WB 8 而不是 6.3。我确实错过了一个细节,因为我们正试图在新机器上设置一个新的 MySQL 服务器,因此数据转储。但是你是说如果我只是使用 6.3 将数据导入到新的 MySQL 服务器,然后加载 8.0 并连接,那应该可以吗?
    • 是的,您可以使用任一版本的 Workbench 来完成该任务,但如果参与的服务器之一是 8.0+,我强烈推荐 WB 8。
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 2019-05-11
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 2019-07-04
    • 2018-10-14
    相关资源
    最近更新 更多