编译安装MySQL-5.5

Choosing the MySQL version
GA (General Availability)
RC (Release Candidate)
beta
alpha

MySQL安装:
   专用软件包管理器包
       deb, rpm
       rpm:
           RHEL(Oracle Linux), CentOS
           SUSE
   通用二进制格式包
       gcc|icc: x86, x64
   源代码
       5.5, 5.6版本使用cmake编译

MYSQL-client   mysql客户端*
MYSQL-devel    mysql头文件,库文件 针对mysql做二次开发,如果编译安装软件时,依赖mysql包,就需要安装。*
MYSQL-embedded  嵌入式
MYSQL-ndbmanagement  MYSQL-CLUSTER
MYSQL-SERVER
MYSQL-shared 共享库*
MYSQL-shared-compat  共享兼容*
MYSQL-test  测试组建

汉字:字符集
   GBK
   GB2312
   GB18030
   UTF8

排序规则:
-DDEFAULT_COLLATION=utf8_general_ci
性能分析
-DENABLE_PROFILING=1

-----------------------------------------------------

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。

编译安装MySQL-5.5


yum install gcc gcc-c++ ncurses  ncurses-devel  openssl openssl-devel zlib bison cmake


wget  http://mirror.switch.ch/mirror/mysql/Downloads/MySQL-5.5/mysql-5.5.39.tar.gz


一、安装cmake

跨平台编译器

# tar xf cmake-2.8.8.tar.gz
# cd cmake-2.8.8
# ./bootstrap
# make
# make install

二、编译安装mysql-5.5.25a

1、使用cmake编译mysql-5.5
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure           cmake .
./configure --help    cmake . -LH or ccmake .

指定安装文件的安装路径时常用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc

默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1

若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1

如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0

其它常用的选项:
-DMYSQL_TCP_PORT=3306
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
-DENABLED_LOCAL_INFILE=1
-DEXTRA_CHARSETS=all
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci  排序规则
-DWITH_DEBUG=0
-DENABLE_PROFILING=1 性能分析

如果想清理此前的编译所生成的文件,则需要使用如下命令:
make clean
rm CMakeCache.txt

2、编译安装

# groupadd -r mysql
# useradd -g mysql -r -d /data/mydata mysql
# tar xf mysql-5.5.25a.tar.gz
# cd mysql-5.5.25a
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
         -DMYSQL_DATADIR=/data/mysql \
         -DSYSCONFDIR=/etc \
         -DWITH_INNOBASE_STORAGE_ENGINE=1 \
         -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
         -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
         -DWITH_READLINE=1 \
         -DWITH_SSL=system \
         -DWITH_ZLIB=system \
         -DWITH_LIBWRAP=0 \
         -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
         -DDEFAULT_CHARSET=utf8 \
         -DDEFAULT_COLLATION=utf8_general_ci
# make
# make install


配置&&初始化




   cp ./support-files/my-default.cnf /etc/my.cnf  

   groupadd mysql  

   useradd -g mysql mysql  

   chown -R mysql:mysql /usr/local/mysql


    /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data/mysql 
   /usr/local/mysql/bin/mysqld_safe --user=mysql & 
   /usr/local/mysql/bin/mysqladmin -uroot password mypassword  


四,加入到系统服务




   cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld  

   chmod 700 /etc/init.d/mysqld  

   chkconfig --add mysqld  

   chkconfig mysqld on  


五 服务器运行多个mysql

   修改配置文件的端口号  和pid 文件的存储位置

   修改mysql.server 中的  pid文件位置   配置文件位置  存储文件位置

   拷贝到/etc/init.d  中不要和已有的mysqld 冲突   如 mysqld_2

   chkconfig -add mysqld_2




./configure
--prefix=/opt/modules/mysql
--localstatedir=/data/mysql/var    数据存储目录
--with-extra-charsets=all         扩展字符支持
--enable-thread-safe-client        线程安全标志
--enable-assembler                 汇编字符串函数
--with-mysqld-ldflags=-all-static   客户端标志
--with-charset=latin1            默认字符集    
--with-big-tables               Big tables支持    
--with-readline                 readline库
--with-ssl                      SSL库    
--with-embedded-server          嵌入式服务器
--enable-local-infile           启用加载本地数据
--with-plugins=partition,innobase,myisammrg   支持的存储引擎



cmake . -DCMAKE_INSTALL_PREFIX=/opt/modules/mysql-5.5.39  \
       -DMYSQL_DATADIR=/data/mysql/var \
       -DEXTRA_CHARSETS=all  \
       -DDEFAULT_CHARSET=latin1  \
       -DWITH_READLINE=1 \
       -DWITH_SSL=system \
       -DWITH_EMBEDDED_SERVER=1 \
       -DENABLED_LOCAL_INFILE=1 \
       -DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
       -DWITH_INNOBASE_STORAGE_ENGINE=1
       

参数值说明    配置选项    CMak选项
安装根目录    --prefix=/usr    -DCMAKE_INSTALL_PREFIX=/usr
mysqld目录    --libexecdir=/usr/sbin    -DINSTALL_SBINDIR=sbin
数据存储目录    --localstatedir=/var/lib/mysql    -DMYSQL_DATADIR=/var/lib/mysql
配置文件(my.cnf)目录    --sysconfdir=/etc/mysql    -DSYSCONFDIR=/etc/mysql
插件目录    --with-plugindir=/usr/lib64/mysql/plugin    -DINSTALL_PLUGINDIR=lib64/mysql/plugin
手册文件目录    --mandir=/usr/share/man    -DINSTALL_MANDIR=share/man
共享数据目录    --sharedstatedir=/usr/share/mysql    -DINSTALL_SHAREDIR=share
Library库目录    --libdir=/usr/lib64/mysql    -DINSTALL_LIBDIR=lib64/mysql
Header安装目录    --includedir=/usr/include/mysql    -DINSTALL_INCLUDEDIR=include/mysql
信息文档目录    --infodir=/usr/share/info    -DINSTALL_INFODIR=share/info


参数值说明    配置选项    CMak选项
readline库    --with-readline    -DWITH_READLINE=1
SSL库    --with-ssl=/usr    -DWITH_SSL=system
zlib库    --with-zlib-dir=/usr    -DWITH_ZLIB=system
libwrap库    --without-libwrap    -DWITH_LIBWRAP=0


参数值说明    配置选项    CMak选项
TCP/IP端口    --with-tcp-port-=3306    -DMYSQL_TCP_PORT=3306
UNIX socket文件    --with-unix-socket-path=/tmp/mysqld.sock    -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
启用加载本地数据    --enable-local-infile    -DENABLED_LOCAL_INFILE=1
扩展字符支持    --with-extra-charsets=all(默认:all)    -DEXTRA_CHARSETS=all(默认:all)
默认字符集    --with-charset=utf8    -DDEFAULT_CHARSET=utf8
默认字符校对    --with-collation=utf8_general_ci    -DDEFAULT_COLLATION=utf8_general_ci
Build the server    --with-server    无
嵌入式服务器    --with-embedded-server    -DWITH_EMBEDDED_SERVER=1
libmysqld权限控制    --with-embedded-privilege-control    无
安装文档    --without-docs    无
Big tables支持    --with-big-tables, --without-big-tables    无
mysqld运行用户    --with-mysqld-user=mysql    -DMYSQL_USER=mysql
调试模式    --without-debug(默认禁用)    -DWITH_DEBUG=0(默认禁用)
GIS支持    --with-geometry    无
社区功能    --enable-community-features    无
Profiling    --disable-profiling(默认启用)    -DENABLE_PROFILING=0(默认启用)
pstack    --without-pstack    无(新版移除该功能)
汇编字符串函数    --enable-assembler    无
构建类型    --build=x86_64-pc-linux-gnu    没有等效参数
交叉编译主机    --host=x86_64-pc-linux-gnu    没有等效参数
客户端标志    --with-client-ldflags=-lstdc++    无
线程安全标志    --enable-thread-safe-client    无
注释存储类型    --with-comment='string'    -DWITH_COMMENT='string'
Shared/static binaries    --enable-shared --enable-static    无
内存使用控制    --with-low-memory    无



[root@localhost software]# cd mysql-5.5.11
[root@localhost mysql-5.5.11]# cmake .
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:82 (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:126 (FIND_CURSES)
  cmake/readline.cmake:216 (MYSQL_USE_BUNDLED_LIBEDIT)
  CMakeLists.txt:250 (MYSQL_CHECK_READLINE)




-- Configuring incomplete, errors occurred!
[root@localhost mysql-5.5.11]# rm CMakeCache.txt
[root@localhost mysql-5.5.11]# yum install ncurses-devel
Warning: Bison executable not found in PATH
-- Configuring done
-- Generating done
-- Build files have been written to: /software/mysql-5.5.11
[root@localhost mysql-5.5.11]# yum install bison

你可能感兴趣的:(mysql5-5)