mysql编译详细参数官方地址
http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
自5.5以后的版本都需要cmake编译安装,so...先安装cmake编译器
安装必要的组件
yum -y install cmake
yum -y install bison
yum -y install ncurses-devel
添加账户
groupadd mysql
useradd mysql -g mysql -M -s /bin/false
添加如下内容
vim /etc/security/limits.conf
mysql soft nproc 2047
mysql hard nproc 16384
mysql soft nofile 1024
mysql hard nofile 65536
"/etc/security/limits.conf" 67L, 2559C written
编译安装 (参考)
cmake ./
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
-DMYSQL_DATADIR=/datadisk/mysqldb \ #数据文件存放位置
-DSYSCONFDIR=/etc \ #my.cnf路径
-DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
-DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
-DWITH_federated_STORAGE_ENGINE=1 \ #支持federated引擎
-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 \ #默认字符
-DDEFAULT_COLLATION=utf8_general_ci \ #默认排序
-enable_downloads=1 \ #开启数据库下载功能
-mysql_datadir=/datadisk/mysqldb \ #mysql数据文件目录
-optimizer_trace=1 \ #开启性能跟踪功能
最后参数最后不用加\加这个是表示命令还没有结束。
如果使用sudo编译那么需要写到一行
sudo情况下可以使用的写法
sudo /bin/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/datadisk/mysqldb/data \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1
/**
sudo /bin/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/datadisk/mysqldb/data \
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1
**/
实际只用这些就可以了cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_TCP_PORT=3306 -DWITH_federated_STORAGE_ENGINE=1 ,剩下的参数可以在mysql的配置文件里面配置
输入参数后开始编译-
make -j 2 && make install
# 注:-j 用来指定CPU核心数,可加快编译速度,不加也可以
以下为完整步骤
1、数据库目录权限修改以及初始化数据库文件:
修改权限
chown -R mysql.mysql /usr/local/mysql
配置mysql配置文件
cp support-files/my-large.cnf /etc/my.cnf
vim /etc/my.cnf
basedir = /usr/local/mysql
datadir = /mysqldb
port = 3306
server_id = 155
socket = /tmp/mysqld.sock
innodb_file_per_table=1 #开启独立表空间
innodb_undo_tablespaces=120 #有多少个undo文件,默认一个文件10m 最大120也就是1.2g大小
innodb_undo_logs=128 #设置有多少个undo回滚段 默认是128个
innodb_undo_directory=/datadisk/mysqldb/undo #设置undo表空间数据文件目录
开始初始化mysql
/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/mysqldb/data \
--user=mysql
或者放到一行写
cd /usr/local/mysql/scripts
./mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/datadisk/mysqldb/data --user=mysql
2、安装完毕后,把mysql的bin路径加入到path路径里面
export PATH=/usr/local/mysql/bin/:$PATH
或者vim /etc/profile 设置里面的PATH路径
export PATH=$PATH:/usr/local/mysql/bin/
3、添加mysql服务并修改脚本添加开机启动等
复制启动脚本
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
修改启动脚本里面的目录
#vi /etc/init.d/mysqld(编辑此文件,查找并修改以下变量内容:)
basedir=/usr/local/mysql5.5
datadir=/var/mysql5.5/data
修改启动脚本权限
chmod 755 /etc/rc.d/init.d/mysqld
添加开机启动(可选)
chkconfig --add mysqld
chkconfig --level 35 mysqld on
启动mysql服务
service mysqld start
4.其他选项
之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:
--with-debug => WITH_DEBUG=1
--with-embedded-server => WITH_EMBEDDED_SERVER
5.调试配置过程
使用configure编译完将生成config.log和config.status文件。
使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。
编译参数参考:
BUILD_CONFIG 采用官方发行版一致的编译参数
CMAKE_BUILD_TYPE 指定产品编译说明信息 RelWithDebInf
CMAKE_INSTALL_PREFIX 指定MySQL安装路径 /usr/local/mysql
CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF 5.5.7
DEFAULT_CHARSET MYSQL 默认字符集 latin1 5.5.7
DEFAULT_COLLATION MYSQL 默认排序字符集 latin1_swedish_ci 5.5.7
ENABLE_DEBUG_SYNC 是否启用同步调试功能 ON 5.5.7
ENABLE_DOWNLOADS 是否下载可选文件 OFF 5.5.7
ENABLE_DTRACE 是否包含 DTrace 支持 5.5.7
ENABLE_GCOV 是否包含 Gcov 支持 5.5.14
ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF 5.5.7
ENABLED_PROFILING 是否启用代码查询分析 ON 5.5.7
INSTALL_BINDIR MySQL 主执行文件目录 PREFIX/bin 5.5.7
INSTALL_DOCDIR 文档安装路径 PREFIX/docs 5.5.7
INSTALL_DOCREADMEDIR 自述文件目录 PREFIX 5.5.7
INSTALL_INCLUDEDIR 头文件目录 PREFIX/include 5.5.7
INSTALL_INFODIR 关于信息文件目录 PREFIX/docs 5.5.7
INSTALL_LAYOUT 选择预定义的安装 STANDALONE 5.5.7
INSTALL_LIBDIR 库文件目录 PREFIX/lib 5.5.7
INSTALL_MANDIR 手册页面目录 PREFIX/man 5.5.7
INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share 5.5.7
INSTALL_MYSQLTESTDIR mysql-test 目录 PREFIX/mysql-test 5.5.7
INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin 5.5.7
INSTALL_SBINDIR 服务器超级用户执行文件目录 PREFIX/bin 5.5.7
INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts 5.5.7
INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share 5.5.7
INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX 5.5.7
INSTALL_SUPPORTFILESDIR 扩展支持文件目录 PREFIX/support-files 5.5.7
MYSQL_DATADIR 数据库存放目录 5.5.7
MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境 OFF 5.5.7
MYSQL_TCP_PORT TCP/IP 端口号 3306 5.5.7
MYSQL_UNIX_ADDR Unix Socket 套接字文件 /tmp/mysql.sock 5.5.7
SYSCONFDIR 选项配置文件目录 5.5.7
WITH_COMMENT 编译环境发表评论 5.5.7
WITH_DEBUG 是否包括调试支持 OFF 5.5.7
WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器 OFF 5.5.7
WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器 5.5.7
WITH_EXTRA_CHARSETS 额外的字符集,包括 all 5.5.7
WITH_LIBWRAP 是否包括支持libwrap(TCP包装) OFF 5.5.7
WITH_READLINE 使用捆绑的readline OFF 5.5.7
WITH_SSL 是否支持SSL no 5.5.7
WITH_ZLIB 是否支持Zlib system 5.5.7