Php mysqldump停止转换为MariaDB的工作-设置gtid清除=关闭问题?

Php mysqldump停止转换为MariaDB的工作-设置gtid清除=关闭问题?,php,mysql,mariadb,Php,Mysql,Mariadb,我在一个共享服务器(webhostinghub)上,每天晚上运行一个CRON作业来备份我的mySQl InnoDB数据库。CRON作业运行一个php脚本,该脚本依次通过passthrough()发出mysqldump命令,如下所示 $return = -1; $command = "mysqldump -h localhost -u server_user -ppassword --add-drop-table --quick --set-gtid-purged=OFF server_datab

我在一个共享服务器(webhostinghub)上,每天晚上运行一个CRON作业来备份我的mySQl InnoDB数据库。CRON作业运行一个php脚本,该脚本依次通过
passthrough()
发出
mysqldump
命令,如下所示

$return = -1;
$command = "mysqldump -h localhost -u server_user -ppassword --add-drop-table --quick --set-gtid-purged=OFF server_database > ./backup/backup-2018-02-19.sql"; 

passthrough($command, $return);    // note: I just added the $return parameter to see what it is returning which is `7` => non zero tells me there is some error but there is no further info I can find.
该脚本运行了多年没有出现错误,最近开始创建零字节文件

我从phpMyAdmin处获悉:

Server type: MariaDB
Server version: 10.2.11-MariaDB-log - MariaDB Server
Protocol version: 10 
我不记得在
MariaDB
上,很明显,我的提供商没有提及我就把我换了(感谢webhostinghub),这就是问题所在。我知道他们应该99%兼容,但这是1%吗

我删除了
--set gtid purged=OFF
参数,备份“似乎”已经工作(我没有验证数据,但文件现在有数据)

我不记得为什么我添加了
--set gtid purged=OFF
参数,它的作用对我来说并不完全清楚。我知道它是用于全局事务标识符(GTID),但我不确定是否使用这些。我不“复制”,但希望我的导出和导入保持唯一的主ID。我导入本地主机上的mysql数据库

如果您能帮助我确定
MariaDB
数据库的等效
mysqldump
命令,以及导入我的localhost
mysql
数据库时需要注意的事项,我将不胜感激

感谢

的实现与MySQL完全不同,因此在
mysqldump
等工具中支持它的逻辑也不兼容<在MySQL版本的
mysqldump
中,code>set-gtid-purged选项设置了一个不存在且在MariaDB中没有意义的变量,因此该选项也不存在。如果您一般不使用复制,特别是不使用GTID,那么您可以从命令行中删除该选项,其余选项的工作方式应该相同。它应该对主键没有影响,如果这就是主ID的意思的话

MariaDB和MySQL在选项/语法级别上的“几乎完全兼容”适用于5.5及以下版本的发行版。从MariaDB 10.0和MySQL 5.6开始,有明显的区别

这是一本书。它可能不完整,但应该涵盖大部分内容


将MySQL服务器的转储加载到MariaDB服务器应该可以工作,除非MySQL服务器使用了MariaDB没有或以不同形式使用的某些语法或功能。将MySQL版本的
mysqldump
生成的转储加载到MariaDB服务器可能会导致问题,例如,如果它设置了MariaDB没有的变量(例如
@@global.gtid\u pulled
控制的设置gtid pulled
,可能会有更多)。在这种情况下,可能需要手动编辑转储。

@Mike-感谢您提供文档链接。这有助于清楚地表明,这是一个我并不真正需要的选项,因为我没有复制。我可能(几年前)在一个SO示例中使用了这个开关。由于我不完全理解基于GTID的复制。感谢您验证不兼容性并解释为什么我不需要它。(是的,我指的是主键)。我添加了一个指向已知不兼容列表的链接,以供参考。在很大程度上,它是基于社区的投入进行维护的,我们非常感谢添加内容。