ERROR 1193(HY000):未知的系统变量'GTID_PURGED'

时间:2017-08-24 10:04:03

标签: mysql

我从远程服务器上从工作台备份了数据库。因此,当我在我的本地环境中导入它时,我收到错误:

  

ERROR 1193(HY000):未知系统变量'GTID_PURGED'

我正在使用xampp服务器

通过控制台或phpmyadmin

导入数据库获取相同的错误

6 个答案:

答案 0 :(得分:3)

通过附加--set-gtid-purged=OFF选项重新创建转储文件可以解决问题。

这是因为在MySQL 5.6中添加了GTIDs,早期版本无法识别。

您的命令可能如下所示:

mysqldump -u username -ppassword -h mydbhost --set-gtid-purged=OFF db_name > dump_file.sql

更多关于我的故事,我从源自MySQL 5.7的转储文件中遇到了同样的问题。我正在尝试使用默认的MariaDB安装将数据导入新的CentOS 7安装,这是5.5(我猜)。

我想到的第一个想法是升级到最新的MariaDB。幸运的是,他们的网站提供a great utility来帮助设置Linux variaties的软件包存储库。此外,对于升级过程,digitalocean还有一个非常简短明了的guide,这也归功于它们!

升级到最新的MariaDB稳定版本10.2时,并没有解决这个问题。所以我仍然需要使用上面提到的选项,但它让我升级到最新的MariaDB。

升级后的另一个问题是,最新的MariaDB上不再支持来自innodb_additional_mem_pool_size的{​​{1}}配置,服务器无法启动。从MySQL文档中,它已从MySQL 5.7中删除。我可以在评论之后启动服务器。我不是数据库专家,我不会花更多的时间来检查MariaDB版本到MySQL DB的确切映射,以及它们有什么区别。

答案 1 :(得分:2)

需要删除所有带有GTID_PURGED的行

sed -i '/@@GLOBAL.GTID_PURGED=/d' your_file.sql

最终文件将正确加载

答案 2 :(得分:1)

如果数据库很大,则加载文件并对其进行编辑可能很棘手。这是我的操作方式:

  1. 我用less -N dump.sql找到了行号。在第24行。
  2. 然后我用sed -i '24s/SET/\#SET/' dump.sql注释了这一行。
  3. 最后,用于导入数据库转储的mysql命令起作用。

答案 3 :(得分:0)

花了很多时间。

我在文本编辑器中打开了我的数据库文件,并搜索此变量“GLOBAL.GTID_PURGED”。我只是设置它的值“”

SET @@GLOBAL.GTID_PURGED=""

然后我现在通过Windows控制台上传数据库它就像一个魅力:)

答案 4 :(得分:0)

您还可以从MySQL工作台设置set-gtid-purged = OFF,然后运行转储,单击高级选项,然后在set-gtid-purged下将AUTO更改为OFF。运行转储,还原到其他MySQL版本应该没有问题。

答案 5 :(得分:0)

请按照以下步骤解决此问题。

  1. 在notepad ++ / notepad中打开数据库转储
  2. 搜索 SET @@ GLOBAL.GTID_PURGED = ” [某些值将在此处]
  3. 只需从数据库转储中删除此 [SET @@ GLOBAL.GTID_PURGED =“”]
  4. 保存数据库转储,然后尝试立即导入。

这对我有用,我希望这对您也有用。