我从远程服务器上从工作台备份了数据库。因此,当我在我的本地环境中导入它时,我收到错误:
ERROR 1193(HY000):未知系统变量'GTID_PURGED'
我正在使用xampp服务器
通过控制台或phpmyadmin
导入数据库获取相同的错误答案 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)
如果数据库很大,则加载文件并对其进行编辑可能很棘手。这是我的操作方式:
less -N dump.sql
找到了行号。在第24行。sed -i '24s/SET/\#SET/' dump.sql
注释了这一行。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)
请按照以下步骤解决此问题。
这对我有用,我希望这对您也有用。