需要事先准备cmake-2.8.8.tar.gz与mysql-5.5.25a.tar.gz两个包放入linux /usr/local/src中
cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
跨平台编译器
[root@localhost src]# tar xf cmake-2.8.8.tar.gz
[root@localhost src]# cd cmake-2.8.8
[root@localhost cmake-2.8.8]# ./bootstrap
[root@localhost cmake-2.8.8]# make && make install
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 //Unix通讯方式
-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
新建一个逻辑卷,这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
[root@localhost init.d]# fdisk /dev/sda
//其中过程省略。。
[root@localhost init.d]# partprobe /dev/sda
//创建逻辑卷
[root@localhost init.d]# pvcreate /dev/sda5
Writing physical volume data to disk "/dev/sda5"
Physical volume "/dev/sda5" successfully created
[root@localhost init.d]# vgcreate myvg /dev/sda5
Volume group "myvg" successfully created
[root@localhost init.d]# lvcreate -n mydata -L 5G myvg
Logical volume "mydata" created
[root@localhost init.d]# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
mydata myvg -wi-a- 5.00G
lvtext vgtext -wi-a- 1.00G
home vol0 -wi-ao 4.88G
root vol0 -wi-ao 29.28G
[root@localhost init.d]# mke2fs -j /dev/myvg/mydata
//设置开机挂载
[root@localhost ~]# mkdir /mydata
[root@localhost ~]# vim /etc/fstab
//添加如下内容
/dev/myvg/mydata /mydata ext3 defaults 0 0
[root@localhost ~]# mount –a //重新挂载
[root@localhost ~]# mkdir /mydata/data //作为数据的挂载目录
//创建用户
[root@localhost ~]# groupadd -r mysql
[root@localhost ~]# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
[root@localhost ~]# chown -R mysql:mysql /mydata/data
//开始进行编译
[root@localhost src]# tar xf mysql-5.5.25a.tar.gz
[root@localhost src]# cd mysql-5.5.25a
[root@localhost src]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/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
[root@localhost src]# make && make install
[root@localhost mysql-5.5.25a]# cd ..
[root@localhost src]# cd ..
[root@localhost local]# pwd
/usr/local
[root@localhost local]# ln -sv /usr/local/src/mysql-5.5.25a mysql
[root@localhost local]# cd mysql
[root@localhost mysql]# chown -R mysql:mysql .
[root@localhost mysql]#scripts/mysql_install_db --user=mysql --datadir=/mydata/data
Installing MySQL system tables...
[root@localhost mysql]# cp support-files/my-large.cnf /etc/my.cnf
[root@localhost mysql]# vim /etc/my.cnf
//并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
//另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data //添加此行指定mysql数据文件的存放位置
[root@localhost mysql]# pwd
/usr/local/mysql
[root@localhost mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
//添加至服务列表:
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# chkconfig mysqld on
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
[root@localhost mysql]# vim /etc/man.config
#####################mysql#############
MANPATH /usr/local/mysql/man
这可以通过简单的创建链接实现:
[root@localhost mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql
create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include'
[root@localhost ld.so.conf.d]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
export PATH=$PATH:/usr/local/mysql/bin
登录尝试一下
<a href="http://blog.51cto.com/attachment/201304/224201877.png" target="_blank"></a>
本文转自 陈延宗 51CTO博客,原文链接:http://blog.51cto.com/407711169/1186795,如需转载请自行联系原作者