mysql 5.0 编译安装,编译安装MySQL - Database, Cloud Computing and Life

使用rpm包,或者apt-get、yum等方式安装MySQL已经很方便了,不过我还是更喜欢编译安装。编译安装的好处:平台无关、安装的MySQL目录独立(方便清楚),据说有更好的性能和平台耦合。缺点,编译安装较慢(不过现在8核CPU编译起来也很快了)。

1. MySQL编译参数

常用的参数有:

CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \

-fno-exceptions -fno-rtti" ./configure \

--prefix=/data/mysql --with-extra-charsets=latin1,gbk,utf8 \

--with-plugins=partition,heap,innobase,myisam,myisammrg,csv \

--enable-assembler

make

make install

“If you are using a version of gcc recent enough to understand the -fno-exceptions option, it is very important that you use this option. Otherwise, you may compile a binary that crashes randomly. Also use -felide-constructors and -fno-rtti along with -fno-exceptions.”

2. 多核编译

可以通过 -j 参数指定编译使用的CPU数量,之前一直没有注意使用这个选项,以下是对比测试:

$date && make > make.log 2>&1 && date

Fri Apr 16 16:32:00 CST 2010

Fri Apr 16 16:39:37 CST 2010

$date && make -j 8 > make.log 2>&1 && date

Fri Apr 16 16:27:10 CST 2010

Fri Apr 16 16:28:30 CST 2010

$date && make -j 15 > make.log 2>&1 && date

Fri Apr 16 16:50:23 CST 2010

Fri Apr 16 16:51:41 CST 2010

看到,单核编译花了457秒,八核编译花了80秒,十五核编译花了78秒。

3. 目录结构

最初安装MySQL,不用RPM包的另一个重要原因就是,编译安装我们可以获得相对独立的MySQL目录,包括Server、Client、Data File等都可以比较好的规划在一个目录中。

在编译时,使用--prefix=/data/mysql则可以保证,Server(mysqld_safe)、Client(mysql)等统一在prefix所制定的目录下;在/etc/my.cnf文件中,我们再继续指定Data File目录、sock文件目录、pid文件目录、日志目录、tmp目录,这样基本上就保证了整个MySQL的独立性。

你甚至可以把/etc下的my.cnf文件都转移到prefix指定的目录下,这样你就拥有一个完整而且独立的MySQL目录了。

4. 需要注意的问题

一般编译安装之后,很多生成的脚本中都会写死目录(prefix指定的目录),这样编译好的脚本(二进制、shell、perl)如果转移到别的目录可能会导致无法运行。

例如,编译时指定prefix=/data/mysql,如果最后你把编译好的文件转移到/opt/mysql,很多脚本可能会无法运行,甚至会发生很多怪异的现象:-(

5. 安装实践 step by step

下面是将MySQL安装在/home/mysql目录下的一个实际操作过程,这里的prefix将指定目录/home/mysql/mysql(你可以根据需要修改为自己需要指定的位置)

# # # 新建运行MySQL的用户

groupadd dba

useradd -g dba mysql

cp mysql-5.0.86.tar.gz /home/mysql/

chown -R mysql:dba /home/mysql/mysql-5.0.86.tar.gz

# # # 开始编译、安装

su - mysql

tar zxvf /home/mysql/mysql-5.0.86.tar.gz

cd mysql-5.0.86

./configure \

--prefix=/home/mysql/mysql --with-extra-charsets=latin1,gbk,utf8 \

--with-plugins=partition,heap,innobase,myisam,myisammrg,csv

make -j 8 && make install #-j 表示希望使用cpu核数

# # # 建立配置文件

cd /home/mysql/mysql

su - root

cp mysql/share/mysql/my-medium.cnf /etc/my.cnf

chown -R mysql:dba /etc/my.cnf

# # # 修改配置文件 配置数据文件、日志的路径

su - mysql

vi /etc/my.cnf

basedir = /home/mysql/mysql

datadir = /home/mysql/mysql/data

socket = /home/mysql/mysql/run/mysql.sock

log-error = /home/mysql/mysql/log/alert.log

log_slow_queries = /home/mysql/mysql/log/slow.log

mkdir log run data tmp

# # # 初始MySQL配置表(用户表 权限表等)

./bin/mysql_install_db --basedir=/home/mysql/mysql --datadir=/home/mysql/mysql/data --user=mysql --force

# # # 启动MySQL

./bin/mysqld_safe &

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值