一、安装cmake
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
跨平台编译器
#wget https://cmake.org/files/v3.7/cmake-3.7.0.tar.gz
# tar xf cmake-3.7.0.tar.gz
# cd cmake-3.7.0.
# ./configure
# make
# make install
二、编译安装mysql-5.5
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、编译安装
# yum groupinstall -y "Development tools"
# mkdir -p /mysql_data/data
# groupadd -r mysql
# useradd -g mysql -r -s /sbin/nologin mysql
# chown -R mysql.mysql /mysql_data/data/
# wget http://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.52.tar.gz
# tar xf mysql-5.5.52-linux2.6-x86_64.tar.gz
# cd mysql-5.5.52-linux2.6-x86_64
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mysql_data/data -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
3、配置mysql
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mysql_data/data
# chown -R mysql /usr/local/mysql
# cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# echo "export PATH=$PATH:/usr/local/mysql/bin" >/etc/profile.d/mysql.sh
# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v
4、mysql用户设置
# mysql
> drop user ''@'localhost.domain';
> drop user ''@'localhost';
> drop user 'root'@'::1';
> update mysql.user set password=password('12344321') where user='root';
> flush privileges;
注:本地登录mysql不输入密码设置方法:
# cd
# vim .my.conf添加:
[client]
user=root
password=12344321
host=localhost