CentOS 5.5下编译MySql 5.5.11
将一台老Dell服务器的Windows 2003 系统铲掉,安装了CentOS 5.5,目前CentOS 5.6也发布了,想下载的请到官网下载:http://www.centos.org/
重装成Linux,还需要编译安装很多服务程序。这里记录下编译MySql 5.5.11。
MySQL 5.5开始对旧版本有新的特征:
- 默认存储引擎更改为InnoDB
- 多核性能提升
- 复制功能(Replication)加强
- 增强表分区功能
- Insert Buffering
- Support for Native AIO on Linux
重大性能改进,MySQL 5.5候选版与MySQL 5.1相比性能显著提升了。测试结果包括:
- 在Windows上运行:读/写操作时性能提升高达15倍,仅读操作时性能提升高达5倍1
- 在Linux上运行:读/写操作时性能提升高达3.6倍,仅读操作时性能提升高达2倍2
这么美好的数据,难道不足而吸引你安装/更新MySql为5.5以上版本?
MySql 5.5开始使用cmake编译,以下一步步记录安装的过程:
一,检查系统软件环境
CentOS默认已安装以下工具,如果没有安装请使用yum在线安装:
- make,例如GNU make
- GCC
- Perl
- bison
二,安装Cmake
- 创建源码存放目录
mkdir -p /root/software/cmake cd /root/software/cmake
- 下载Cmake源码
wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz
- 编译安装
tar -zxvf cmake-2.8.4.tar.gz cd cmake-2.8.4 ./configure make make install
二,安装MySql 5.5.11
- 创建源码存放目录
mkdir -p /root/software/mysql cd /root/software/mysql
- 下载MySql 5.5.11源码
wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.11.tar.gz/from/http://mysql.ntu.edu.tw/
- 创建mysql 的用户及用户组
groupadd mysql useradd mysql -g mysql -M -s /sbin/nologin
说明:
-g:指定新用户所属的CentOS Mysql用户组(group)
-M:不建立根目录
-s:定义其使用的shell,/sbin/nologin代表用户不能登录系统。
- 编译安装MySql 5.5.11
tar -zxvf mysql-5.5.11.tar.gz cd mysql-5.5.11 cmake . -DCMAKE_INSTALL_PREFIX=/opt/mysql -DMYSQL_DATADIR=/opt/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/opt/mysql
说明:
-DCMAKE_INSTALL_PREFIX=/opt/mysql #mysql安装目录
- DMYSQL_DATADIR =/opt/mysql/data #数据库文件存放目录
-DDEFAULT_CHARSET=utf8 #默认字符集
-DDEFAULT_COLLATION=utf8_general_ci #整理
-DWITH_INNOBASE_STORAGE_ENGINE=1 # InnoDB
-DSYSCONFDIR=/opt/mysql #选项文件目录
make make install
三,配置MySql 5.5.11
- 修改目录权限
cd /opt/mysql chown -R mysql . chgrp -R mysql . chown -R root . chown -R mysql data
- 初始数据库
./scripts/mysql_install_db --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
- 修改my.cnf
cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf vi /etc/my.cnf
在[mysqld]下增加:character-set-server=utf8
- 启动
#./bin/mysqld_safe --user=mysql &- 设置为系统服务
cp support-files/mysql.server /etc/init.d/mysqld cp bin/my_print_defaults /usr/bin chkconfig --add mysqld chkconfig --level 345 mysqld on
编辑/etc/init.d/mysqld
vi /etc/init.d/mysqld
修改大致是47行代码:
basedir=/opt/mysql
datadir=/opt/mysql/data
- 启动服务,修改root密码和权限
service mysqld start ./bin/mysql -u root -p -S /tmp/mysql.sock
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'jacken'; FLUSH privileges;
如果修改root密码和权限发现问题,可以重启电脑再试试。
OK,一个新的MySql服务器又已经跑起来了,体验下MySql5.5的新特性和高性能…
PS:MySQL 5.6之后开始支持NoSql?值得期待……
