Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误1193(HY000):未知系统变量';GTID#u清除';_Mysql - Fatal编程技术网

Mysql 错误1193(HY000):未知系统变量';GTID#u清除';

Mysql 错误1193(HY000):未知系统变量';GTID#u清除';,mysql,Mysql,我从远程服务器上从workbench备份了数据库。因此,当我在本地环境中导入时,出现错误: 错误1193(HY000):未知系统变量“GTID_” 我正在使用xampp服务器 花费大量时间后,通过控制台或phpmyadmin导入数据库时出现相同错误 我在文本编辑器中打开数据库文件,搜索这个变量“GLOBAL.GTID_”。我刚刚设置了它的值“” 像 然后我通过windows控制台上传数据库,现在它就像一个符咒:)通过附加--set gtid pulleted=OFF选项重新创建转储文件可以解决问

我从远程服务器上从workbench备份了数据库。因此,当我在本地环境中导入时,出现错误:

错误1193(HY000):未知系统变量“GTID_”

我正在使用xampp服务器


花费大量时间后,通过控制台或phpmyadmin导入数据库时出现相同错误

我在文本编辑器中打开数据库文件,搜索这个变量“GLOBAL.GTID_”。我刚刚设置了它的值“”


然后我通过windows控制台上传数据库,现在它就像一个符咒:)

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

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

您的命令可能如下所示:

mysqldump -u username -ppassword -h mydbhost --set-gtid-purged=OFF db_name > dump_file.sql
关于我的故事,我得到了来自MySQL 5.7的转储文件同样的问题。我正在尝试将数据导入到一个新的CentOS 7安装中,默认的MariaDB安装是5.5(我猜)

我想到的第一个想法是升级到最新版本。幸运的是,他们的网站提供了帮助设置Linux变量的包存储库。此外,多亏了他们,digitalocean的升级过程非常简短明了

虽然升级到最新版本10.2并不能解决这个问题。因此,我仍然必须使用上面提到的选项,但它允许我升级到最新的MariaDB


升级后的另一个问题是,
my-innodb-heavy-4G.cnf
中的
innodb\u附加内存池\u大小
config在最新的MariaDB上不再受支持,服务器无法启动。从MySQL文档中,它已从MySQL 5.7中删除。我可以在评论之后启动服务器。我不是数据库专家,我不会花更多的时间来检查MariaDB版本映射到MySQL数据库的准确程度,以及它们之间的区别。

您也可以从MySQL工作台设置set gtid pulleted=OFF,在运行转储之前,单击advance options并在set gtid pulleted下将AUTO更改为OFF。运行转储,恢复到其他MySQL版本应该没有问题。

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

  • 在记事本++/notepad中打开数据库转储
  • 搜索SET@@GLOBAL.GTID\u=“[这里会有一些值]”
  • 只需从数据库转储中删除此[SET@@GLOBAL.GTID_=”“]
  • 保存数据库转储并尝试立即导入

  • 这对我很有用,我希望这也能对你有用。

    如果这是一个大型数据库,加载和编辑文件可能会很棘手。我是这样做的:

  • 我用
    less-N dump.sql
    找到了行号。在24号线
  • 然后我用
    sed-I'24s/SET/\\\\35; SET/'dump.sql
    注释了那一行
  • 最后,导入数据库转储的
    mysql
    命令起作用

  • 需要清除GTID_的所有管路

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

    最终的文件将毫无问题地加载

    我刚刚注释掉了这一行,效果很好。我刚刚删除了这一行,效果很好:-)MariaDB似乎对这个选项一点也不感兴趣,因为即使是10.4也会抱怨。这个标志帮助很大。让我回显一下@tadman——我从MySQL导出到MariaDB时遇到了同样的问题(都是在各自的最新日期)。你的回答巧妙地解决了我的问题!此命令为我提供了
    mysqldump:unknown变量'set gtid pulleted=OFF'
    将其合并到我的数据库还原脚本中非常方便
    pv db dumps/mysql-backup.sql.gz | zcat | sed'/@@GLOBAL.gtid|u pulleted=/d'| mysql database_name
    附加变量使用-f,示例:
    mysql-f-u用户名-p数据库名称
    sed -i '/@@GLOBAL.GTID_PURGED=/d' your_file.sql