执行pt-table-checksum命令失败

问题描述

执行pt-table-checksum命令失败。

定位思路

  1. 查看mysql.so的位置。
    1
    locate mysql.so
    

  2. 查看mysql.so的动态链接库。
    1
    ldd /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so
    

    发现libmysqlclient.so.18缺少动态链接库。

处理步骤

  1. 查看libmysqlclient.so.18的位置。

    1
    2
    locate libmysqlclient.so.18
    ls /usr/lib64/mysql/libmysqlclient.so*
    

  2. 查看libmysqlclient.so.18的软链接状态。

    1
    ll /usr/lib64/mysql/libmysqlclient.so.18
    

  3. 拷贝库文件。

    1
    2
    3
    cp /usr/lib64/mysql/libmysqlclient.so* /usr/local/mysql/lib
    ls /usr/local/mysql/lib | grep libmysqlclient.so.18
    ll /usr/local/mysql/lib/libmysqlclient.so.18
    

  4. 添加libmysqlclient.so.18的动态链接库。

    1
    2
    3
    echo '/usr/local/mysql/lib' >> /etc/ld.so.conf.d/mysql.conf
    ldconfig
    ldconfig -p | grep libmysqlclient.so.18
    

  5. 查看mysql.so的动态链接库。

    1
    ldd /usr/lib64/perl5/vendor_perl/auto/DBD/mysql/mysql.so
    

  6. 执行pt-table-checksum正常。