对于服务器软件安装,个人现在比较青睐源码编译安装的方式,虽然相较OS vendor 提供的二进制安装包,源码安装稍嫌麻烦,但却能够让你对安装过程有更多的控制,而且源码编译安装的方式是独立于发行版的,可以保持风格的统一。
这里采用mysql-5.5.33的版本。
一、编译 mysql 需要使用cmake。需要事先安装。
如果是编译安装cmake的话,步骤类似如下:#
# tar xf cmake-2.8.8.tar.gz # cd cmake-2.8.8 # ./bootstrap # make # make install
二、编译安装mysql-5.5.33
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、编译安装
――创建mysql用户和组
# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -d /mydata/data mysql
――创建mysql数据目录,即下面-DMYSQL_DATADIR=/mydata/data指定的目录
# mkdir /mydata/data # chown mysql:mysql /mydata/data
――解压源码并编译安装
# tar xf mysql-5.5.33.tar.gz # cd mysql-5.5.33 # 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 # make # make install
三 安装后配置
1、
――切换到安装目录。 # cd /usr/local/mysql ――将安装目录下的所有文件属组改为mysql # chown -R :mysql . #执行mysql初始化脚本,注意初始化脚本得在安装目录下执行,否则要指定其它选项参数 #scripts/mysql_install_db --user=mysql --datadir=/mydata/data ――使用源码提供的模板配置文件作为进一步配置的基础 # cp support-files/my-large.cnf /etc/my.cnf ――修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行: thread_concurrency = 2 ――在/etc/my.cnf中添加如下行指定mysql数据文件的存放位置: datadir = /mydata/data ――为mysql提供sysv服务脚本 # cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chmod +x /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
编辑/etc/man.config 添加mysql的man文件路径 输出mysql的头文件至系统头文件路径/usr/include: 这可以通过简单的创建链接实现: # ln -sv /usr/local/mysql/include /usr/include/mysql 输出mysql的库文件给系统库查找路径: #echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf 而后让系统重新载入系统库: # ldconfig 修改PATH环境变量