由于CentOS 6 现在yum源的mysql-server 版本还是5.1 的,已经比较老了

源码安装 MySQL Community Server 5.6.26_第1张图片

况且后续服务可能需要mysql的头文件, yum安装的没有找不到头文件,索性就编译安装.


MySQL官网是: http://dev.mysql.com/downloads/mysql/ 

1,直接下载源码:

说明:MySQL 5.5的编译工具由Autotool转变为了cmake(有关于更多关于cmake的信息,请大家自行google了解)。MySQL团队也撰写了一篇Autotools to CMake Transition Guide , 本文将要列出的各个编译选项以及更多的编译选项的说明可以参考该文档。在troubleshooting时,此文档更是不得不看。编译时我习惯于一些选项 (比如安装位置)不按默认的来,因为如果按默认选项出了问题,更不好解决(因为到时你不仅需要知道到底有选项有何含义还要知道默认的是什么,反而更麻 烦)。

cmake 参数说明请参阅官方文档 http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html 


Formats Description Default Introduced Removed
BUILD_CONFIG Use same build options as official releases      
CMAKE_BUILD_TYPE Type of build to produce RelWithDebInfo    
CMAKE_CXX_FLAGS Flags for C++ Compiler      
CMAKE_C_FLAGS Flags for C Compiler      
CMAKE_INSTALL_PREFIX Installation base directory /usr/local/mysql    
COMPILATION_COMMENT Comment about compilation environment      
CPACK_MONOLITHIC_INSTALL Whether package build produces single file OFF    
DEFAULT_CHARSET The default server character set latin1    
DEFAULT_COLLATION The default server collation latin1_swedish_ci    
-DWITH_SYMVER16 Whether libmysqlclient.so.18 contains both symver 16 and 18 symbols. OFF 5.6.31  
ENABLED_LOCAL_INFILE Whether to enable LOCAL for LOAD DATA INFILE OFF    
ENABLED_PROFILING Whether to enable query profiling code ON    
ENABLE_DEBUG_SYNC Whether to enable Debug Sync support ON    
ENABLE_DOWNLOADS Whether to download optional files OFF    
ENABLE_DTRACE Whether to include DTrace support      
ENABLE_GCOV Whether to include gcov support   5.6.3  
ENABLE_GPROF Enable gprof (optimized Linux builds only) OFF 5.6.6  
IGNORE_AIO_CHECK With -DBUILD_CONFIG=mysql_release, ignore libaio check OFF 5.6.1  
INNODB_PAGE_ATOMIC_REF_COUNT Enable or disable atomic page reference counting ON 5.6.16  
INSTALL_BINDIR User executables directory PREFIX/bin    
INSTALL_DOCDIR Documentation directory PREFIX/docs    
INSTALL_DOCREADMEDIR README file directory PREFIX    
INSTALL_INCLUDEDIR Header file directory PREFIX/include    
INSTALL_INFODIR Info file directory PREFIX/docs    
INSTALL_LAYOUT Select predefined installation layout STANDALONE    
INSTALL_LIBDIR Library file directory PREFIX/lib    
INSTALL_MANDIR Manual page directory PREFIX/man    
INSTALL_MYSQLSHAREDIR Shared data directory PREFIX/share    
INSTALL_MYSQLTESTDIR mysql-test directory PREFIX/mysql-test    
INSTALL_PLUGINDIR Plugin directory PREFIX/lib/plugin    
INSTALL_SBINDIR Server executable directory PREFIX/bin    
INSTALL_SCRIPTDIR Scripts directory PREFIX/scripts    
INSTALL_SHAREDIR aclocal/mysql.m4 installation directory PREFIX/share    
INSTALL_SQLBENCHDIR sql-bench directory PREFIX    
INSTALL_SUPPORTFILESDIR Extra support files directory PREFIX/support-files    
MEMCACHED_HOME Path to memcached [none]    
MYSQL_DATADIR Data directory      
MYSQL_MAINTAINER_MODE Whether to enable MySQL maintainer-specific development environment OFF    
MYSQL_PROJECT_NAME Windows/OS X project name 3306 5.6.5  
MYSQL_TCP_PORT TCP/IP port number 3306    
MYSQL_UNIX_ADDR Unix socket file /tmp/mysql.sock    
ODBC_INCLUDES ODBC includes directory      
ODBC_LIB_DIR ODBC library directory      
OPTIMIZER_TRACE Whether to support optimizer tracing   5.6.3  
SUNPRO_CXX_LIBRARY Client link library on Solaris 10+   5.6.20  
SYSCONFDIR Option file directory      
TMPDIR tmpdir default value   5.6.16  
WITHOUT_SERVER Do not build the server OFF    
WITHOUT_xxx_STORAGE_ENGINE Exclude storage engine xxx from build      
WITH_ASAN Enable AddressSanitizer OFF 5.6.15  
WITH_BUNDLED_LIBEVENT Use bundled libevent when building ndbmemcache ON    
WITH_BUNDLED_MEMCACHED Use bundled memcached when building ndbmemcache ON    
WITH_CLASSPATH Classpath to use when building MySQL Cluster Connector for Java. Default is an empty string.
   
WITH_DEBUG Whether to include debugging support OFF    
WITH_DEFAULT_COMPILER_OPTIONS Whether to use default compiler options ON 5.6.6  
WITH_DEFAULT_FEATURE_SET Whether to use default feature set ON 5.6.6  
WITH_EDITLINE Which libedit/editline library to use bundled 5.6.12  
WITH_EMBEDDED_SERVER Whether to build embedded server OFF    
WITH_EMBEDDED_SHARED_LIBRARY Whether to build a shared embedded server library OFF 5.6.17  
WITH_ERROR_INSERT Enable error injection in the NDB storage engine. Should not be used for building binaries intended for production. OFF    
WITH_EXTRA_CHARSETS Which extra character sets to include all    
WITH_INNODB_MEMCACHED Whether to generate memcached shared libraries. OFF    
WITH_LIBEDIT Use bundled libedit library ON   5.6.12
WITH_LIBEVENT Which libevent library to use bundled 5.6.6  
WITH_LIBWRAP Whether to include libwrap (TCP wrappers) support OFF    
WITH_NDBCLUSTER Build the NDB storage engine; alias for WITH_NDBCLUSTER_STORAGE_ENGINE ON    
WITH_NDBCLUSTER_STORAGE_ENGINE Build the NDB storage engine ON    
WITH_NDBMTD Build multi-threaded data node. ON    
WITH_NDB_BINLOG Enable binary logging by default by mysqld. ON    
WITH_NDB_DEBUG Produce a debug build for testing or troubleshooting. OFF    
WITH_NDB_JAVA Enable building of Java and ClusterJ support. Enabled by default. Supported in MySQL Cluster only. ON    
WITH_NDB_PORT Default port used by a management server built with this option. If this option was not used to build it, the management server's default port is 1186. [none]    
WITH_NDB_TEST Include NDB API test programs. OFF    
WITH_READLINE Use bundled readline library OFF   5.6.5
WITH_SSL Type of SSL support bundled    
WITH_UNIXODBC Enable unixODBC support OFF    
WITH_VALGRIND Whether to compile in Valgrind header files OFF    
WITH_ZLIB Type of zlib support bundled    
WITH_xxx_STORAGE_ENGINE Compile storage engine xxx statically into server      




# wget # groupadd -r mysql
# useradd -M -r -G mysql -s /sbin/nologin mysql
# tar xf  mysql-5.6.26.tar.gz 
# cd mysql-5.6.26
# yum install gcc gcc-c++ cmake  make ncurses ncurses-devel readline-devel openssl-devel  pcre-devel zlib-devel libxml2-devel
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6.25 \   #mysql安装路径
-DMYSQL_DATADIR=/var/mysqldb  \     #数据文件存放位置
-DSYSCONFDIR=/etc              \  #my.cnf配置文件路径
-DWITH_MYISAM_STORAGE_ENGINE=1    \      #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \     #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \      #支持Memory引擎
-DWITH_READLINE=1     \          #命令行文本整理
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock    \   #连接数据库socket路径
-DMYSQL_TCP_PORT=3306    \            #端口
-DENABLED_LOCAL_INFILE=1    \       #允许从本地文件中导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1  \   #安装支持数据库分区表
-DEXTRA_CHARSETS=all  \             #安装所有的字符集
-DDEFAULT_CHARSET=utf8    \      #默认字符utf-8
-DDEFAULT_COLLATION=utf8_general_ci        #默认字符集(ci不区分大小写)
-- Running cmake version 2.8.12.2
-- Could NOT find Git (missing:  GIT_EXECUTABLE) 
-- The C compiler identification is GNU 4.4.7
-- The CXX compiler identification is GNU 4.4.7
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
..................
-- COMPILE_DEFINITIONS: HAVE_CONFIG_H
-- CMAKE_C_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement
-- CMAKE_CXX_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    WITH_MEMORY_STORAGE_ENGINE
    WITH_READLINE


-- Build files have been written to: /root/mysql-5.6.26
# make -j 4 && make install
Scanning dependencies of target INFO_BIN
[  0%] Built target INFO_BIN
Scanning dependencies of target INFO_SRC
[  0%] Built target INFO_SRC
Scanning dependencies of target abi_check
[  0%] Built target abi_check
Scanning dependencies of target zlib
[  0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/compress.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/crc32.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/deflate.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/gzio.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/infback.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/inffast.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/inflate.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/inftrees.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/trees.c.o
[  0%] Building C object zlib/CMakeFiles/zlib.dir/uncompr.c.o
[  1%] Building C object zlib/CMakeFiles/zlib.dir/zutil.c.o
Linking C static library libzlib.a
[  1%] Built target zlib
Scanning dependencies of target yassl
[  1%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/buffer.cpp.o
[  1%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/cert_wrapper.cpp.o
[  1%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/crypto_wrapper.cpp.o
[  1%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/handshake.cpp.o
[  2%] Building CXX object extra/yassl/CMakeFiles/yassl.dir/src/yassl_int.cpp.o
[  2%] Building C object extra/yassl/CMakeFiles/yassl.dir/__/__/client/get_password.c.o
Linking CXX static library libyassl.a
[  2%] Built target yassl
Scanning dependencies of target taocrypt
[  2%] Building CXX object extra/yassl/taocrypt/CMakeFiles/taocrypt.dir/src/aes.cpp.o
[  2%] Building CXX object extra/yassl/taocrypt/CMakeFiles/taocrypt.dir/src/aestables.cpp.o
[  2%] Building CXX object extra/yassl/taocrypt/CMakeFiles/taocrypt.dir/src/algebra.cpp.o
[  2%] Building CXX object extra/yassl/taocrypt/CMakeFiles/taocrypt.dir/src/arc4.cpp.o
[  3%] Building CXX object extra/yassl/taocrypt/CMakeFiles/taocrypt.dir/src/asn.cpp.o
[ 20%] Built target simple-t
[ 20%] Built target skip-t
[ 20%] Built target skip_all-t
[ 20%] Built target todo-t
[ 20%] Built target basic-t
[ 20%] [ 20%] Built target my_print_defaults
Built target mysql_waitpid
[ 21%] Built target innochecksum
[ 21%] Built target replace
[ 22%] [ 22%] Built target resolve_stack_dump
Built target resolveip
[ 22%] [ 22%] Built target mysql_tzinfo_to_sql
[ 30%] Built target perfschema
[ 35%] Built target perfschema_embedded
[ 35%] Built target federated
[ 37%] Built target myisammrg

[ 52%] Built target pfs_instr-t
[ 52%] Built target pfs_instr_class-oom-t
[ 52%] [ 52%] Built target pfs_instr_class-t
Built target pfs_misc-t
[ 59%] Built target myisam_embedded
[ 59%] Built target myisam_ftdump
[ 59%] Built target myisamchk
[ 59%] Built target myisamlog
[ 59%] Built target myisampack
[ 59%] Built target federated_embedded
[ 59%] Built target blackhole_embedded
[ 61%] Built target myisammrg_embedded
[ 69%] [ 69%] Built target innobase_embedded
Built target auth
[ 69%] Built target auth_socket
[ 69%] Built target auth_test
..........


编译的参数可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html 



整个过程需要30分钟左右……漫长的等待



2, 配置MySQL 5.6

# chown -R mysql:mysql /usr/local/mysql5.6.25    //修改MySQL安装目录的所属用户组
# cd /usr/local/mysql5.6.25
# scripts/mysql_install_db --basedir=/usr/local/mysql5.6.26/ --datadir=/var/mysqldb/ --user=mysql        //初始化MySQL
# cp support-files/mysql.server /etc/init.d/mysqld    //拷贝服务脚本到系统init.d目录
# chkconfig --add mysqld                    //添加启动列表
# chkconfig mysqld on                        //设置开机启动服务
# service mysqld start                        //手动启动mysqld 服务


MySQL 服务启动后,默认管理账户是root ,密码为空

# cd bin/
# mysql        //默认账户是root  密码为空


接下来添加mysql 程序目录的环境变量  或者  添加软连接

# echo 'export PATH=${PATH}:/usr/local/mysql5.6.26/bin/' >> /etc/profile
# source /etc/profile

或者

# ln -s /usr/local/mysql5.6.26/bin/*  /usr/bin/


3, 修改数据库默认root密码

# mysql -u root
mysql> 
mysql> SET PASSWORD=PASSWORD('passwd');
Query OK, 0 rows affected (0.00 sec)


4, 配置my.cnf

mysql的配置文件,这是很重要的一步,配置得当以后就不需要在启动时写上大段的参数了。

首先应该知道:MySQL寻找配置文件的路径以及顺序。最开始检索的位置是/etc/my.cnf之后是/etc/mysql/my.cnf因此我们要做的就是在这两个地方之一建立配置文件my.cnf。MySQL为我们准备了几种不同方案的默认配置文件(在mysql的安装目录中 support-files/目录下有个 my-default.cnf的文件),因此我们可以复制一份到上述的位置

# cp /usr/local/mysql5.6.26/support-files/my-default.cnf /etc/my.cnf
# vim /etc/my.cnf

源码安装 MySQL Community Server 5.6.26_第2张图片

明确写出mysql的安装目录,数据库的存放目录,默认tcp端口,socket文件目录

# service mysqld restart


基本安装就完成.