1.redhat5环境下,首先安装编译环境
yum groupinstall -y "Development Libraries" "Development Tools"
2.由于源码编译mysql需要cmake命令,所以先要编译安装cmake包
首先下载cmake包,这里下载使用cmake-2.8.8.tar.gz
tar xf cmake-2.8.8.tar.gz
cd cmake-2.8.8
./configure
make && make install
3.使用cmake编译mysql
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure 相当于 cmake .
./configure --help 相当于 cmake . -LH 或者 ccmake .
4.开始正式编译安装mysql,这里下载使用mysql-5.5.50.tar.gz
groupadd -g 306 mysql
useradd -g 306 -u 306 -M -s /sbin/nologin mysql
mkdir -pv /mydata
mount /dev/VG01/LV01 /dev/mydata #新增一个LVM(省略)并将其挂载至/mydata
mkdir -pv /mydata/data
chown -R mysql.mysql /mydata/data
tar xf mysql-5.5.50.tar.gz
cd mysql-5.5.50
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_DATADIR=/mydata/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
下面安装如同通用二进制格式安装mysql,如不太熟悉可查看我前面博客
chown -R .mysql /usr/local/mysql/ #更改属组
scripts/mysql_install_db --user=mysql --datadir=/mydata/data/
cp support-files/my-huge.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld #拷贝启动脚本
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
netstat -antlp | grep 3306 #查看mysql启动状态
ehco "/usr/local/mysql/bin" >> /etc/profile.d/mysql.sh #修改mysql环境变量
source /etc/profile.d/mysql.sh
mysql #连接测试mysql
5.编译安装mysql时常用选项解释
5.1.指定安装文件的安装路径时常用的选项:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_DATADIR=/data/mysql
-DSYSCONFDIR=/etc
5.2.默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,如下选项:
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
5.3.若要明确指定不编译某存储引擎,可以使用类似如下的选项:
-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
比如:
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
-DWITHOUT_FEDERATED_STORAGE_ENGINE=1
-DWITHOUT_PARTITION_STORAGE_ENGINE=1
5.4.如若要编译进其它功能,则可使用类似如下选项来实现编译时使用某库或不使用某库:
-DWITH_READLINE=1
-DWITH_SSL=system #开启ssl功能
-DWITH_ZLIB=system
-DWITH_LIBWRAP=0 #取消tcp_wrap功能
5.5.其它常用的选项:
-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
5.6.如果想清理此前的编译所生成的文件,则需要使用如下命令:
make clean
rm CMakeCache.txt