一、安装源码编译配置工具:cmake
先下载cmake工具的源代码:
[root@ggg2 Desktop]# wget cmake.org/files/v2.8/cmake-2.8.4.tar.gz--2016-08-21 22:09:21-- cmake.org/files/v2.8/cmake-2.8.4.tar.gzResolving cmake.org... 66.194.253.19Connecting to cmake.org|66.194.253.19|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: cmake.org/files/v2.8/cmake-2.8.4.tar.gz [following]--2016-08-21 22:09:22-- cmake.org/files/v2.8/cmake-2.8.4.tar.gzResolving cmake.org... 66.194.253.19Connecting to cmake.org|66.194.253.19|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: https://cmake.org/files/v2.8/cmake-2.8.4.tar.gz [following]--2016-08-21 22:09:23-- https://cmake.org/files/v2.8/cmake-2.8.4.tar.gzConnecting to cmake.org|66.194.253.19|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 5477628 (5.2M) [application/x-gzip]Saving to: “cmake-2.8.4.tar.gz”100%[=========================================================>] 5,477,628 101K/s in 63s 2016-08-21 22:10:27 (84.8 KB/s) - “cmake-2.8.4.tar.gz” saved [5477628/5477628]
然后切换目录,进行 配置,需要注意的是 ./configure 是源码安装的很重要的一步,对要安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系:
[root@ggg2 Desktop]# cd cmake-2.8.4[root@ggg2 cmake-2.8.4]# ./configure---------------------------------------------CMake 2.8.4, Copyright 2000-2009 Kitware, Inc.---------------------------------------------Error when bootstrapping CMake:Cannot find appropriate C compiler on this system.Please specify one using environment variable CC.See cmake_bootstrap.log for compilers attempted.---------------------------------------------Log of errors: /root/Desktop/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log---------------------------------------------
---------------------------------------------CMake 2.8.4, Copyright 2000-2009 Kitware, Inc.C compiler on this system is: cc ---------------------------------------------Error when bootstrapping CMake:Cannot find appropriate C++ compiler on this system.Please specify one using environment variable CXX.See cmake_bootstrap.log for compilers attempted.---------------------------------------------Log of errors: /root/Desktop/cmake-2.8.4/Bootstrap.cmk/cmake_bootstrap.log---------------------------------------------
从上面的输出,发现是报错了,仔细查看报错信息,发现是 没有找到合适的c、c++编译器,所以接下来要安装编译器:
[root@ggg2 ~]# yum -y install gccLoaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: ftp.sjtu.edu.cn * updates: centos.ustc.edu.cnResolving Dependencies--> Running transaction check---> Package gcc.x86_64 0:4.4.7-17.el6 will be installed--> Processing Dependency: libgomp = 4.4.7-17.el6 for package: gcc-4.4.7-17.el6.x86_64--> Processing Dependency: cpp = 4.4.7-17.el6 for package: gcc-4.4.7-17.el6.x86_64--> Processing Dependency: libgcc >= 4.4.7-17.el6 for package: gcc-4.4.7-17.el6.x86_64--> Processing Dependency: cloog-ppl >= 0.15 for package: gcc-4.4.7-17.el6.x86_64--> Running transaction check---> Package cloog-ppl.x86_64 0:0.15.7-1.2.el6 will be installed--> Processing Dependency: libppl_c.so.2()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64--> Processing Dependency: libppl.so.7()(64bit) for package: cloog-ppl-0.15.7-1.2.el6.x86_64---> Package cpp.x86_64 0:4.4.7-17.el6 will be installed--> Processing Dependency: libmpfr.so.1()(64bit) for package: cpp-4.4.7-17.el6.x86_64---> Package libgcc.x86_64 0:4.4.7-11.el6 will be updated---> Package libgcc.x86_64 0:4.4.7-17.el6 will be an update---> Package libgomp.x86_64 0:4.4.7-11.el6 will be updated---> Package libgomp.x86_64 0:4.4.7-17.el6 will be an update--> Running transaction check---> Package mpfr.x86_64 0:2.4.1-6.el6 will be installed---> Package ppl.x86_64 0:0.10.2-11.el6 will be installed--> Finished Dependency ResolutionDependencies Resolved================================================================================ Package Arch Version Repository Size================================================================================Installing: gcc x86_64 4.4.7-17.el6 base 10 MInstalling for dependencies: cloog-ppl x86_64 0.15.7-1.2.el6 base 93 k cpp x86_64 4.4.7-17.el6 base 3.7 M mpfr x86_64 2.4.1-6.el6 base 157 k ppl x86_64 0.10.2-11.el6 base 1.3 MUpdating for dependencies: libgcc x86_64 4.4.7-17.el6 base 103 k libgomp x86_64 4.4.7-17.el6 base 134 kTransaction Summary================================================================================Install 5 Package(s)Upgrade 2 Package(s)Total size: 16 MDownloading Packages:warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEYRetrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6importing GPG key 0xC105B9DE: Userid : CentOS-6 Key (CentOS 6 Official Signing Key)Package: centos-release-6-6.el6.centos.12.2.x86_64 (@anaconda-CentOS-201410241409.x86_64/6.6) From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Updating : libgcc-4.4.7-17.el6.x86_64 1/9 Installing : ppl-0.10.2-11.el6.x86_64 2/9 Installing : cloog-ppl-0.15.7-1.2.el6.x86_64 3/9 Updating : libgomp-4.4.7-17.el6.x86_64 4/9 Installing : mpfr-2.4.1-6.el6.x86_64 5/9 Installing : cpp-4.4.7-17.el6.x86_64 6/9 Installing : gcc-4.4.7-17.el6.x86_64 7/9 Cleanup : libgomp-4.4.7-11.el6.x86_64 8/9 Cleanup : libgcc-4.4.7-11.el6.x86_64 9/9 Verifying : libgcc-4.4.7-17.el6.x86_64 1/9 Verifying : ppl-0.10.2-11.el6.x86_64 2/9 Verifying : gcc-4.4.7-17.el6.x86_64 3/9 Verifying : mpfr-2.4.1-6.el6.x86_64 4/9 Verifying : libgomp-4.4.7-17.el6.x86_64 5/9 Verifying : cpp-4.4.7-17.el6.x86_64 6/9 Verifying : cloog-ppl-0.15.7-1.2.el6.x86_64 7/9 Verifying : libgcc-4.4.7-11.el6.x86_64 8/9 Verifying : libgomp-4.4.7-11.el6.x86_64 9/9 Installed: gcc.x86_64 0:4.4.7-17.el6 Dependency Installed: cloog-ppl.x86_64 0:0.15.7-1.2.el6 cpp.x86_64 0:4.4.7-17.el6 mpfr.x86_64 0:2.4.1-6.el6 ppl.x86_64 0:0.10.2-11.el6 Dependency Updated: libgcc.x86_64 0:4.4.7-17.el6 libgomp.x86_64 0:4.4.7-17.el6 Complete!
[root@ggg2 cmake-2.8.4]# yum -y install gcc-c++Loaded plugins: fastestmirror, refresh-packagekit, securitySetting up Install ProcessLoading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: ftp.sjtu.edu.cn * updates: centos.ustc.edu.cnResolving Dependencies--> Running transaction check---> Package gcc-c++.x86_64 0:4.4.7-17.el6 will be installed--> Processing Dependency: libstdc++-devel = 4.4.7-17.el6 for package: gcc-c++-4.4.7-17.el6.x86_64--> Processing Dependency: libstdc++ = 4.4.7-17.el6 for package: gcc-c++-4.4.7-17.el6.x86_64--> Running transaction check---> Package libstdc++.x86_64 0:4.4.7-11.el6 will be updated---> Package libstdc++.x86_64 0:4.4.7-17.el6 will be an update---> Package libstdc++-devel.x86_64 0:4.4.7-17.el6 will be installed--> Finished Dependency ResolutionDependencies Resolved=================================================================================================== Package Arch Version Repository Size===================================================================================================Installing: gcc-c++ x86_64 4.4.7-17.el6 base 4.7 MInstalling for dependencies: libstdc++-devel x86_64 4.4.7-17.el6 base 1.6 MUpdating for dependencies: libstdc++ x86_64 4.4.7-17.el6 base 295 kTransaction Summary===================================================================================================Install 2 Package(s)Upgrade 1 Package(s)Total download size: 6.6 MDownloading Packages:(1/3): gcc-c++-4.4.7-17.el6.x86_64.rpm | 4.7 MB 00:21 (2/3): libstdc++-4.4.7-17.el6.x86_64.rpm | 295 kB 00:00 (3/3): libstdc++-devel-4.4.7-17.el6.x86_64.rpm | 1.6 MB 00:11 ---------------------------------------------------------------------------------------------------Total 195 kB/s | 6.6 MB 00:34 Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction Updating : libstdc++-4.4.7-17.el6.x86_64 1/4 Installing : libstdc++-devel-4.4.7-17.el6.x86_64 2/4 Installing : gcc-c++-4.4.7-17.el6.x86_64 3/4 Cleanup : libstdc++-4.4.7-11.el6.x86_64 4/4 Verifying : gcc-c++-4.4.7-17.el6.x86_64 1/4 Verifying : libstdc++-4.4.7-17.el6.x86_64 2/4 Verifying : libstdc++-devel-4.4.7-17.el6.x86_64 3/4 Verifying : libstdc++-4.4.7-11.el6.x86_64 4/4 Installed: gcc-c++.x86_64 0:4.4.7-17.el6 Dependency Installed: libstdc++-devel.x86_64 0:4.4.7-17.el6 Dependency Updated: libstdc++.x86_64 0:4.4.7-17.el6 Complete!
安装完成后,可以查看一下c编译器的版本:
[root@ggg2 ~]# gcc --versiongcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-17)Copyright (C) 2010 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
然后,再次尝试配置,且进行编译、安装:
[root@ggg2 cmake-2.8.4]# ./configure此处省略1w行[root@ggg2 cmake-2.8.4]# gmake && make install此处省略1k行至此,cmake工具安装完成, 不容易
二、修改mysql用户的限制
主要是在 /etc/security/limits.conf 文件的最后,加上4行,这4行主要是设置mysql用户,能打开的文件个数、能打开的进程数:
mysql soft nproc 2047mysql hard nproc 16384mysql soft nofile 1024mysql hard nofile 65536
[root@ggg2 Desktop]# cat /etc/security/limits.conf# /etc/security/limits.conf##Each line describes a limit for a user in the form:####Where:# can be:# - a user name# - a group name, with @group syntax# - the wildcard *, for default entry# - the wildcard %, can be also used with %group syntax,# for maxlogin limit## can have the two values:# - "soft" for enforcing the soft limits# - "hard" for enforcing hard limits## - can be one of the following:# - core - limits the core file size (KB)# - data - max data size (KB)# - fsize - maximum filesize (KB)# - memlock - max locked-in-memory address space (KB)# - nofile - max number of open file descriptors# - rss - max resident set size (KB)# - stack - max stack size (KB)# - cpu - max CPU time (MIN)# - nproc - max number of processes# - as - address space limit (KB)# - maxlogins - max number of logins for this user# - maxsyslogins - max number of logins on the system# - priority - the priority to run user process with# - locks - max number of file locks the user can hold# - sigpending - max number of pending signals# - msgqueue - max memory used by POSIX message queues (bytes)# - nice - max nice priority allowed to raise to values: [-20, 19]# - rtprio - max realtime priority##
##* soft core 0#* hard rss 10000#@student hard nproc 20#@faculty soft nproc 20#@faculty hard nproc 50#ftp hard nproc 0#@student - maxlogins 4mysql soft nproc 2047mysql hard nproc 16384mysql soft nofile 1024mysql hard nofile 65536# End of file
[root@ggg2 Desktop]# wget dev.mysql/get/Downloads/MySQL-5.6/MySQL-5.6.12.tar.gz--2016-08-21 23:01:28-- dev.mysql/get/Downloads/MySQL-5.6/MySQL-5.6.12.tar.gzResolving dev.mysql... 137.254.60.11Connecting to dev.mysql|137.254.60.11|:80... connected.HTTP request sent, awaiting response... 302 FoundLocation: cdn.mysql//archives/mysql-5.6/mysql-5.6.12.tar.gz [following]--2016-08-21 23:01:29-- cdn.mysql//archives/mysql-5.6/mysql-5.6.12.tar.gzResolving cdn.mysql... 23.77.240.248Connecting to cdn.mysql|23.77.240.248|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 35874671 (34M) [application/x-tar-gz]Saving to: “MySQL-5.6.12.tar.gz”100%[=========================================================>] 35,874,671 504K/s in 72s 2016-08-21 23:02:41 (487 KB/s) - “MySQL-5.6.12.tar.gz” saved [35874671/35874671]
四:用cmake工具配置mysql源代码
不过运行中报错了:
[root@ggg2 mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DENABLED_LOCAL_INFILE=ON \-DWITH_INNObase_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BALACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DCOMPLILATION_COMMENT='ggg for mysql' \-DWITH_READLINE=0N \-DSYSConFDIR=/data/mysqldata/3306 \-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH) CMake Error at cmake/readline.cmake:85 (MESSAGE): Curses library not found. Please install appropriate package, remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.Call Stack (most recent call first): cmake/readline.cmake:128 (FIND_CURSES) cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE) CMakeLists.txt:325 (MYSQL_CHECK_EDITLINE)-- Configuring incomplete, errors occurred!
从报错信息中可以看出,要删除 CMakeCache.txt文件,然后,对于rehat以及派生的版本,要安装 ncurses-devel:
[root@ggg2 Desktop]# yum -y install ncurses-devel
再次运行cmake:
[root@ggg2 mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DENABLED_LOCAL_INFILE=ON \-DWITH_INNObase_STORAGE_ENGINE=1 \-DWITH_FEDERATED_STORAGE_ENGINE=1 \-DWITH_BALACKHOLE_STORAGE_ENGINE=1 \-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \-DWITH_PARTITION_STORAGE_ENGINE=1 \-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \-DCOMPLILATION_COMMENT='ggg for mysql' \-DWITH_READLINE=0N \-DSYSConFDIR=/data/mysqldata/3306 \-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock..........................................-- Check size of wchar_t-- Check size of wchar_t - done-- Check size of wctype_t-- Check size of wctype_t - done-- Check size of wint_t-- Check size of wint_t - done-- Found Curses: /usr/lib64/libcurses.so -- Looking for tputs in /usr/lib64/libcurses.so-- Looking for tputs in /usr/lib64/libcurses.so - found-- Performing Test HAVE_DECL_TGOTO-- Performing Test HAVE_DECL_TGOTO - Success-- Looking for strvis-- Looking for strvis - not found-- Looking for strunvis-- Looking for strunvis - not found-- Looking for include files HAVE_LIBAIO_H-- Looking for include files HAVE_LIBAIO_H - not found.-- Looking for io_queue_init in aio-- Looking for io_queue_init in aio - not found-- Looking for sched_getcpu-- Looking for sched_getcpu - found-- Performing Test HAVE_IB_GCC_ATOMIC_BUILTINS-- Performing Test HAVE_IB_GCC_ATOMIC_BUILTINS - Success-- Performing Test HAVE_IB_GCC_ATOMIC_BUILTINS_64-- Performing Test HAVE_IB_GCC_ATOMIC_BUILTINS_64 - Success-- Performing Test HAVE_IB_ATOMIC_PTHREAD_T_GCC-- Performing Test HAVE_IB_ATOMIC_PTHREAD_T_GCC - Success-- Looking for asprintf-- Looking for asprintf - found-- Check size of pthread_t-- Check size of pthread_t - done-- Using cmake version 2.8.4-- Not building NDB-- Performing Test HAVE_PEERCRED-- Performing Test HAVE_PEERCRED - Success-- Library mysqlclient depends on OSLIBS -lpthread;m;rt;dl-- Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.-- If you are inside a firewall, you may need to use an http proxy: export http_proxy=foo.bar:80Warning: Bison executable not found in PATH-- Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl-- Configuring done-- Generating doneCMake Warning: The variable, 'COMPLILATION_COMMENT', specified manually, was not used during the generation.CMake Warning: The variable, 'WITH_BALACKHOLE_STORAGE_ENGINE', specified manually, was not used during the generation.CMake Warning: The variable, 'WITH_READLINE', specified manually, was not used during the generation.-- Build files have been written to: /root/Desktop/mysql-5.6.12
五:编译安装
整个国产大概要20分钟左右:
[root@ggg2 mysql-5.6.12]# make && make install
至此,安装完成