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