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开始对旧版本有新的特征:

  1. 默认存储引擎更改为InnoDB
  2. 多核性能提升
  3. 复制功能(Replication)加强
  4. 增强表分区功能
  5. Insert Buffering
  6. Support for Native AIO on Linux

重大性能改进,MySQL 5.5候选版与MySQL 5.1相比性能显著提升了。测试结果包括:

  1. 在Windows上运行:读/写操作时性能提升高达15倍,仅读操作时性能提升高达5倍1
  2. 在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?值得期待……

声明: 本文采用 BY-NC-SA 协议进行授权. 转载请注明转自: CentOS 5.5下编译MySql 5.5.11
  1. No comments yet.
  1. No trackbacks yet.