• mydumper 安装报错处理


    mydumper 官网:https://launchpad.net/mydumper

    下载之后,安装报错:

    [root@localhost local]# cd mydumper-0.6.2
    [root@localhost mydumper-0.6.2]#
    [root@localhost mydumper-0.6.2]# ls
    binlog.c  CMakeCache.txt  common.h     docs             g_unix_signal.h  myloader.c  Processing  server_detect.c
    binlog.h  CMakeFiles      config.h     Finished         mydumper.c       myloader.h  README      server_detect.h
    cmake     CMakeLists.txt  config.h.in  g_unix_signal.c  mydumper.h       Package     Running
    [root@localhost mydumper-0.6.2]# cmake .
    -- The CXX compiler identification is GNU 4.4.7
    -- Check for working CXX compiler: /usr/bin/c++
    -- Check for working CXX compiler: /usr/bin/c++ -- works
    -- Detecting CXX compiler ABI info
    -- Detecting CXX compiler ABI info - done
    -- Using mysql-config: /usr/local/mysql/bin/mysql_config
    -- Found MySQL: /usr/local/mysql/include, /usr/local/mysql/lib/libmysqlclient.so;/usr/lib/libpthread.so;/usr/lib/libm.so;/usr/lib/librt.so;/usr/lib/libdl.so
    -- checking for one of the modules 'glib-2.0'
    CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:363 (message):
      None of the required 'glib-2.0' found
    Call Stack (most recent call first):
      cmake/modules/FindGLIB2.cmake:10 (pkg_search_module)
      CMakeLists.txt:10 (find_package)
    
    
    -- checking for one of the modules 'gthread-2.0'
    CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:363 (message):
      None of the required 'gthread-2.0' found
    Call Stack (most recent call first):
      cmake/modules/FindGLIB2.cmake:11 (pkg_search_module)
      CMakeLists.txt:10 (find_package)
    
    
    
    CMake Warning at docs/CMakeLists.txt:9 (message):
      Unable to find Sphinx documentation generator
    
    
    -- ------------------------------------------------
    -- MYSQL_CONFIG = /usr/local/mysql/bin/mysql_config
    -- CMAKE_INSTALL_PREFIX = /usr/local
    -- BUILD_DOCS = ON
    -- WITH_BINLOG = OFF
    -- RUN_CPPCHECK = OFF
    -- Change a values with: cmake -D<Variable>=<Value>
    -- ------------------------------------------------
    --
    CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
    Please set them or make sure they are set and tested correctly in the CMake files:
    GLIB2_LIBRARIES (ADVANCED)
        linked by target "mydumper" in directory /usr/local/mydumper-0.6.2
        linked by target "myloader" in directory /usr/local/mydumper-0.6.2
    GTHREAD2_LIBRARIES (ADVANCED)
        linked by target "mydumper" in directory /usr/local/mydumper-0.6.2
        linked by target "myloader" in directory /usr/local/mydumper-0.6.2
    
    -- Configuring incomplete, errors occurred!
    See also "/usr/local/mydumper-0.6.2/CMakeFiles/CMakeOutput.log".
    See also "/usr/local/mydumper-0.6.2/CMakeFiles/CMakeError.log".

    cmake .  报错:

    None of the required 'glib-2.0' found
    None of the required 'gthread-2.0' found

    网上搜索,没有找到解决办法,于是只好去官网寻找方法:

    https://answers.launchpad.net/mydumper/+faq/349

    Run:
     cmake .
     make
    
    One needs to install development versions of required libaries (MySQL, GLib, ZLib, PCRE):
    NOTE: you must use the correspondent mysql devel package.
    
    * Ubuntu or Debian: apt-get install libglib2.0-dev libmysqlclient15-dev zlib1g-dev libpcre3-dev libssl-dev
    * Fedora, RedHat and CentOS: yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel
    * openSUSE: zypper install glib2-devel libmysqlclient-devel pcre-devel zlib-devel
    * MacOSX: port install glib2 mysql5 pcre pkgconfig cmake
     (You may want to run 'port select mysql mysql5' afterwards)
    
    One has to make sure, that pkg-config, mysql_config, pcre-config are all in $PATH
    
    Binlog dump is disabled by default to compile with it you need to add -DWITH_BINLOG=ON to cmake options
    
    Obviously you need compiler and make packages too :)

    可以看到需要安装依赖:

    Fedora, RedHat and CentOS: yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel

    于是按照说明进行安装:

    [root@localhost mydumper-0.6.2]# yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel
    Loaded plugins: fastestmirror, refresh-packagekit, security
    Setting up Install Process
    Loading mirror speeds from cached hostfile
     * c6-media:
    Package mysql-devel-5.1.73-3.el6_5.i686 already installed and latest version
    Package zlib-devel-1.2.3-29.el6.i686 already installed and latest version
    Package pcre-devel-7.8-6.el6.i686 already installed and latest version
    Package openssl-devel-1.0.1e-30.el6.i686 already installed and latest version
    Resolving Dependencies
    --> Running transaction check
    ---> Package glib2-devel.i686 0:2.28.8-4.el6 will be installed
    --> Finished Dependency Resolution
    
    Dependencies Resolved
    
    ==========================================================================================================================================
     Package                            Arch                        Version                             Repository                       Size
    ==========================================================================================================================================
    Installing:
     glib2-devel                        i686                        2.28.8-4.el6                        c6-media                        298 k
    
    Transaction Summary
    ==========================================================================================================================================
    Install       1 Package(s)
    
    Total download size: 298 k
    Installed size: 1.5 M
    Is this ok [y/N]: y
    Downloading Packages:
    Running rpm_check_debug
    Running Transaction Test
    Transaction Test Succeeded
    Running Transaction
      Installing : glib2-devel-2.28.8-4.el6.i686                                                                                          1/1
    Unable to connect to dbus
      Verifying  : glib2-devel-2.28.8-4.el6.i686                                                                                          1/1
    
    Installed:
      glib2-devel.i686 0:2.28.8-4.el6
    
    Complete!

    再来编译安装 mydumper:

    [root@localhost mydumper-0.6.2]# cmake .
    -- Using mysql-config: /usr/local/mysql/bin/mysql_config
    -- Found MySQL: /usr/local/mysql/include, /usr/local/mysql/lib/libmysqlclient.so;/usr/lib/libpthread.so;/usr/lib/libm.so;/usr/lib/librt.so;/usr/lib/libdl.so
    -- checking for one of the modules 'glib-2.0'
    -- checking for one of the modules 'gthread-2.0'
    
    CMake Warning at docs/CMakeLists.txt:9 (message):
      Unable to find Sphinx documentation generator
    
    
    -- ------------------------------------------------
    -- MYSQL_CONFIG = /usr/local/mysql/bin/mysql_config
    -- CMAKE_INSTALL_PREFIX = /usr/local
    -- BUILD_DOCS = ON
    -- WITH_BINLOG = OFF
    -- RUN_CPPCHECK = OFF
    -- Change a values with: cmake -D<Variable>=<Value>
    -- ------------------------------------------------
    --
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /usr/local/mydumper-0.6.2
    [root@localhost mydumper-0.6.2]# echo $?
    0
    [root@localhost mydumper-0.6.2]# make
    Scanning dependencies of target mydumper
    [ 25%] Building C object CMakeFiles/mydumper.dir/mydumper.c.o
    [ 50%] Building C object CMakeFiles/mydumper.dir/server_detect.c.o
    [ 75%] Building C object CMakeFiles/mydumper.dir/g_unix_signal.c.o
    Linking C executable mydumper
    [ 75%] Built target mydumper
    Scanning dependencies of target myloader
    [100%] Building C object CMakeFiles/myloader.dir/myloader.c.o
    Linking C executable myloader
    [100%] Built target myloader
    [root@localhost mydumper-0.6.2]# make install
    [ 75%] Built target mydumper
    [100%] Built target myloader
    Install the project...
    -- Install configuration: ""
    -- Installing: /usr/local/bin/mydumper
    -- Removed runtime path from "/usr/local/bin/mydumper"
    -- Installing: /usr/local/bin/myloader
    -- Removed runtime path from "/usr/local/bin/myloader"

    安装成功。但是执行时又报错:

    [root@localhost mydumper-0.6.2]# mydumper --help
    mydumper: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

    解决办法:

    [root@localhost mydumper-0.6.2]# ldd /usr/local/bin/mydumper
            linux-gate.so.1 =>  (0x00f91000)
            libmysqlclient.so.18 => not found
            libpthread.so.0 => /lib/libpthread.so.0 (0x006fc000)
            libm.so.6 => /lib/libm.so.6 (0x0072b000)
            librt.so.1 => /lib/librt.so.1 (0x00720000)
            libdl.so.2 => /lib/libdl.so.2 (0x00719000)
            libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x00757000)
            libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00918000)
            libpcre.so.0 => /lib/libpcre.so.0 (0x021a8000)
            libz.so.1 => /lib/libz.so.1 (0x002ea000)
            libc.so.6 => /lib/libc.so.6 (0x00564000)
            /lib/ld-linux.so.2 (0x0053e000)
    [root@localhost mydumper-0.6.2]#  LD_DEBUG=libs /usr/local/bin/mydumper -v
          2707:     find library=libmysqlclient.so.18 [0]; searching
          2707:      search cache=/etc/ld.so.cache
          2707:      search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls /i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib             (system s earch path)
          2707:       trying file=/lib/tls/i686/sse2/libmysqlclient.so.18
          2707:       trying file=/lib/tls/i686/libmysqlclient.so.18
          2707:       trying file=/lib/tls/sse2/libmysqlclient.so.18
          2707:       trying file=/lib/tls/libmysqlclient.so.18
          2707:       trying file=/lib/i686/sse2/libmysqlclient.so.18
          2707:       trying file=/lib/i686/libmysqlclient.so.18
          2707:       trying file=/lib/sse2/libmysqlclient.so.18
          2707:       trying file=/lib/libmysqlclient.so.18
          2707:       trying file=/usr/lib/tls/i686/sse2/libmysqlclient.so.18
          2707:       trying file=/usr/lib/tls/i686/libmysqlclient.so.18
          2707:       trying file=/usr/lib/tls/sse2/libmysqlclient.so.18
          2707:       trying file=/usr/lib/tls/libmysqlclient.so.18
          2707:       trying file=/usr/lib/i686/sse2/libmysqlclient.so.18
          2707:       trying file=/usr/lib/i686/libmysqlclient.so.18
          2707:       trying file=/usr/lib/sse2/libmysqlclient.so.18
          2707:       trying file=/usr/lib/libmysqlclient.so.18

    没有找到 libmysqlclient.so.18

    [root@localhost mydumper-0.6.2]# locate libmysqlclient.so.18
    /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18
    /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18.1.0
    [root@localhost mydumper-0.6.2]# ll /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18
    lrwxrwxrwx. 1 root mysql 24 Aug 13 14:18 /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18 -> libmysqlclient.so.18.1.0

    然后将 /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18.1.0 复制到 /usr/lib/ 木下:

    [root@localhost mydumper-0.6.2]# cp /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18.1.0 /usr/lib/libmysqlclient.so.18
    [root@localhost mydumper-0.6.2]# ldd /usr/local/bin/mydumper                                                                                      linux-gate.so.1 =>  (0x00805000)
            libmysqlclient.so.18 => /usr/lib/libmysqlclient.so.18 (0x0019f000)
            libpthread.so.0 => /lib/libpthread.so.0 (0x006fc000)
            libm.so.6 => /lib/libm.so.6 (0x0072b000)
            librt.so.1 => /lib/librt.so.1 (0x00720000)
            libdl.so.2 => /lib/libdl.so.2 (0x00719000)
            libglib-2.0.so.0 => /lib/libglib-2.0.so.0 (0x0055e000)
            libgthread-2.0.so.0 => /lib/libgthread-2.0.so.0 (0x00918000)
            libpcre.so.0 => /lib/libpcre.so.0 (0x021a8000)
            libz.so.1 => /lib/libz.so.1 (0x0067b000)
            libc.so.6 => /lib/libc.so.6 (0x0091d000)
            libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x07b14000)
            libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x0068f000)
            /lib/ld-linux.so.2 (0x0053e000)

    测试:

    [root@localhost mydumper-0.6.2]# mydumper --help
    Usage:
      mydumper [OPTION...] multi-threaded MySQL dumping
    
    Help Options:
      -?, --help                  Show help options
    
    Application Options:
      -B, --database              Database to dump
      -T, --tables-list           Comma delimited table list to dump (does not exclude regex option)
      -o, --outputdir             Directory to output files to
      -s, --statement-size        Attempted size of INSERT statement in bytes, default 1000000
      -r, --rows                  Try to split tables into chunks of this many rows. This option turns off --chunk-filesize
      -F, --chunk-filesize        Split tables into chunks of this output file size. This value is in MB
      -c, --compress              Compress output files
      -e, --build-empty-files     Build dump files even if no data available from table
      -x, --regex                 Regular expression for 'db.table' matching
      -i, --ignore-engines        Comma delimited list of storage engines to ignore
      -m, --no-schemas            Do not dump table schemas with the data
      -k, --no-locks              Do not execute the temporary shared read lock.  WARNING: This will cause inconsistent backups
      --less-locking              Minimize locking time on InnoDB tables.
      -l, --long-query-guard      Set long query timer in seconds, default 60
      -K, --kill-long-queries     Kill long running queries (instead of aborting)
      -D, --daemon                Enable daemon mode
      -I, --snapshot-interval     Interval between each dump snapshot (in minutes), requires --daemon, default 60
      -L, --logfile               Log file name to use, by default stdout is used
      --tz-utc                    SET TIME_ZONE='+00:00' at top of dump to allow dumping of TIMESTAMP data when a server has data in different time zones or data is being moved between servers with different time zones, defaults to on use --skip-tz-utc to disable.
      --skip-tz-utc
      --use-savepoints            Use savepoints to reduce metadata locking issues, needs SUPER privilege
      --success-on-1146           Not increment error count and Warning instead of Critical in case of table doesn't exist
      --lock-all-tables           Use LOCK TABLE for all, instead of FTWRL
      -h, --host                  The host to connect to
      -u, --user                  Username with privileges to run the dump
      -p, --password              User password
      -P, --port                  TCP/IP port to connect to
      -S, --socket                UNIX domain socket file to use for connection
      -t, --threads               Number of threads to use, default 4
      -C, --compress-protocol     Use compression on the MySQL connection
      -V, --version               Show the program version and exit
      -v, --verbose               Verbosity of output, 0 = silent, 1 = errors, 2 = warnings, 3 = info, default 2

    搞定。

    启发:解决问题的最好方法是到官网查看文档和说明。

  • 相关阅读:
    VS2013+PTVS,python编码问题
    关于网易云音乐爬虫的api接口?
    Django分页和查询参数的问题
    angular route 与 django urls 冲突怎么解决?
    200 from memory cache / from disk cache / 304 Not Modified 区别
    go语言中在变量后加上接口是什么意思?
    append生成新变量的时候,没有如预期(It's a feature,not a bug?)
    为一个支持GPRS的硬件设备搭建一台高并发服务器用什么开发比较容易?
    学golang之前都需要哪些前置知识?
    求推荐go语言开发工具及go语言应该以哪种目录结构组织代码?
  • 原文地址:https://www.cnblogs.com/digdeep/p/4925560.html
Copyright © 2020-2023  润新知