Failed to parse MySQL config at /usr/bin/pt-config-diff line 2979.

1.版本

1.1 pt工具版本

pt-config-diff --version
pt-config-diff 2.2.15

1.2 操作系统版本

cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m


2.问题描述

  我在使用pt-config-diff 工具对比两个cnf文件的时候报如下错误:

pt-config-diff my.cnfbak1 my.cnfbak2
Failed to parse MySQL config at /usr/bin/pt-config-diff line 2979.
 pt-config-diff工具肯定是没有问题的,因为我在使用pt-config-diff比较两个实例的 参数的时候是没有问题的

pt-config-diff h=127.0.0.1 --port=3306--user=root --password=root h=172.172.178.76 --user=root --port=3306--password=root  >>该语句是能够正常输出的


3.问题解决

   万能的谷歌和百度没有找到相关信息,只能靠自己排查了。最后发现了问题所在(不知道这个问题算不算bug)。分析那两个cnf文件报错是因为 cnf文件中 有两个以上的[mysqld]  (我们知道pt-config-idff比较的就是 [mysqld] 部分的参数),即使其他的[mysqld]已经被#号注释也没有,只要有多余一个[mysqld]在cnf文件中 ,使用pt-config-diff解析就会报上面的错误。我删除cnf中多余[mysqld](我的cnf中多了一个被#号注释掉的[mysqld])后,再次执行pt-config-diff my.cnfbak1 my.cnfbak2 成功

pt-config-diff my.cnfbak1 my.cnfbak2
2 config differences
Variable                  my.cnfbak1 my.cnfbak2
========================= ========== ==========
lower_case_table_names    0          1
max_connect_errors        50         500




你可能感兴趣的:(TO,parse,mysq,failed,pt-config-diff)