源码安装mysql5.5_源代码编译安装MySQL5.5.25a

源码编译安装MySQL-5.5

需要事先准备cmake-2.8.8.tar.gz与mysql-5.5.25a.tar.gz两个包放入linux /usr/local/src中

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。

一、安装cmake

跨平台编译器

[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

二、编译安装mysql-5.5.25a

1、使用cmake编译mysql-5.5

cmake指定编译选项的方式不同于make,其实现方式对比如下:

./configurecmake .

./configure --helpcmake . -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__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

2、编译安装

①准备数据存放的文件系统

新建一个逻辑卷,这里假设其逻辑卷的挂载目录为/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

③安装并初始化mysql

//开始进行编译

[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...

④为mysql提供主配置文件:

[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数据文件的存放位置

⑤为mysql提供sysv服务脚本:

[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的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:

⑥输出mysql的man手册至man命令的查找路径:

[root@localhost mysql]# vim /etc/man.config

#####################mysql#############

MANPATH /usr/local/mysql/man

⑦输出mysql的头文件至系统头文件路径/usr/include:

这可以通过简单的创建链接实现:

[root@localhost mysql]# ln -sv /usr/local/mysql/include /usr/include/mysql

create symbolic link `/usr/include/mysql' to `/usr/local/mysql/include'

⑧输出mysql的库文件给系统库查找路径:

[root@localhost ld.so.conf.d]# echo '/usr/local/mysql/lib'>/etc/ld.so.conf.d/mysql.conf

⑨修改PATH环境变量,让系统可以直接使用mysql的相关命令。

exportPATH=$PATH:/usr/local/mysql/bin

登录尝试一下

c166312da59960b8eced2a5b83e45d1e.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值