mydumper安装报错处理
mydumper 官网:https://answers.launchpad.net/mydumper/
下载之后,安装报错:
[root@localhostlocal]#cd mydumper-0.6.2[root@localhostmydumper-0.6.2]#[root@localhostmydumper-0.6.2]#lsbinlog.c CMakeCache.txt common.h docs g_unix_signal.h myloader.cPRocessing 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.hPackageRunning
[root@localhostmydumper-0.6.2]#cmake .-- The CXX compiler identification is GNU4.4.7-- Checkforworking CXX compiler: /usr/bin/c++
-- Checkforworking CXX compiler: /usr/bin/c++ --works--Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info -done-- UsingMySQL-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-- checkingforone 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)-- checkingforone 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 avalueswith: 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.2linked by target"myloader"in directory /usr/local/mydumper-0.6.2GTHREAD2_LIBRARIES (ADVANCED)
linked by target"mydumper"in directory /usr/local/mydumper-0.6.2linked 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'foundNone 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 mustusethe correspondent mysql develpackage.
*Ubuntuor 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$PATHBinlogdumpis 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@localhostmydumper-0.6.2]#yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-develLoaded plugins: fastestmirror, refresh-packagekit,security
Setting up Install Process
Loading mirror speeds from cached hostfile* c6-media:Packagemysql-devel-5.1.73-3.el6_5.i686 already installed and latest versionPackagezlib-devel-1.2.3-29.el6.i686 already installed and latest versionPackagepcre-devel-7.8-6.el6.i686 already installed and latest versionPackageopenssl-devel-1.0.1e-30.el6.i686 already installed and latest version
Resolving Dependencies-->Running transaction check--->Packageglib2-devel.i6860:2.28.8-4.el6 will be installed-->Finished Dependency Resolution
Dependencies Resolved==========================================================================================================================================PackageArch Version Repository Size==========================================================================================================================================Installing:glib2-devel i6862.28.8-4.el6 c6-media298k
Transaction Summary==========================================================================================================================================Install1Package(s)
Total download size:298k
Installed size:1.5M
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.i6861/1Unable toconnectto dbus
Verifying: glib2-devel-2.28.8-4.el6.i6861/1Installed:glib2-devel.i6860:2.28.8-4.el6
Complete!
再来编译安装 mydumper:
[root@localhostmydumper-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-- checkingforone of the modules'glib-2.0'-- checkingforone 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 avalueswith: cmake -D<Variable>=<Value>
-- ------------------------------------------------
--
--Configuring done--Generating done-- Build files have been written to: /usr/local/mydumper-0.6.2[root@localhostmydumper-0.6.2]#echo $?0[root@localhostmydumper-0.6.2]#makeScanning 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@localhostmydumper-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@localhostmydumper-0.6.2]#mydumper --helpmydumper: errorwhileloading shared libraries: libmysqlclient.so.18: cannotopenshared object file:Nosuch file or directory
解决办法:
[root@localhostmydumper-0.6.2]#ldd /usr/local/bin/mydumperlinux-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@localhostmydumper-0.6.2]#LD_DEBUG=libs /usr/local/bin/mydumper -v2707: find library=libmysqlclient.so.18[0]; searching2707: search cache=/etc/ld.so.cache2707: 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 (systems earch path)2707: trying file=/lib/tls/i686/sse2/libmysqlclient.so.182707: trying file=/lib/tls/i686/libmysqlclient.so.182707: trying file=/lib/tls/sse2/libmysqlclient.so.182707: trying file=/lib/tls/libmysqlclient.so.182707: trying file=/lib/i686/sse2/libmysqlclient.so.182707: trying file=/lib/i686/libmysqlclient.so.182707: trying file=/lib/sse2/libmysqlclient.so.182707: trying file=/lib/libmysqlclient.so.182707: trying file=/usr/lib/tls/i686/sse2/libmysqlclient.so.182707: trying file=/usr/lib/tls/i686/libmysqlclient.so.182707: trying file=/usr/lib/tls/sse2/libmysqlclient.so.182707: trying file=/usr/lib/tls/libmysqlclient.so.182707: trying file=/usr/lib/i686/sse2/libmysqlclient.so.182707: trying file=/usr/lib/i686/libmysqlclient.so.182707: trying file=/usr/lib/sse2/libmysqlclient.so.182707: trying file=/usr/lib/libmysqlclient.so.18
没有找到 libmysqlclient.so.18
[root@localhostmydumper-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@localhostmydumper-0.6.2]#ll /usr/local/mysql-5.6.26-linux-glibc2.5-i686/lib/libmysqlclient.so.18lrwxrwxrwx.1root mysql24Aug1314: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@localhostmydumper-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@localhostmydumper-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@localhostmydumper-0.6.2]#mydumper --helpUsage:mydumper [OPTION...] multi-threaded MySQL dumping
Help Options:
-?, --help Show help optionsapplicationOptions:
-B, --database Database todump-T, --tables-list Comma delimited table list todump(does not exclude regex option)-o, --outputdir Directory to output files to-s, --statement-size Attempted size of INSERT statement in bytes, default1000000-r, --rows Try tosplittables into chunks of this many rows. This option turns off --chunk-filesize-F, --chunk-filesizeSplittables into chunks of this output file size.This value is in MB-c, --compress Compress output files-e, --build-empty-files Builddumpfiles evenifnodata available from table-x, --regex Regular expressionfor'db.table'matching-i, --ignore-engines Comma delimited list of storage engines to ignore-m, --no-schemasDonotdumptable schemas with the data-k, --no-locksDonot execute the temporary sharedreadlock. WARNING:This will cause inconsistent backups--less-locking Minimize lockingtimeon InnoDB tables.
-l, --long-query-guard Set long query timer in seconds, default60-K, --kill-long-queriesKilllong running queries (instead of aborting)-D, --daemon Enable daemon mode-I, --snapshot-interval Interval betweeneachdumpsnapshot (in minutes), requires --daemon, default60-L, --logfileLogfile name touse,by default stdout is used--tz-utc SET TIME_ZONE='+00:00'at top ofdumpto allow dumping of TIMESTAMP data when a server has data in differenttimezones or data is being moved between servers with differenttimezones, defaults to onuse--skip-tz-utc to disable.
--skip-tz-utc--use-savepointsUsesavepoints to reduce metadata locking issues,needs SUPER privilege--success-on-1146Not 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, --passWordUser 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
搞定。
启发:解决问题的最好方法是到官网查看文档和说明。