烂泥:mysql5.0数据库源码编译安装

本文首发于烂泥行天下mysql

本次实验的mysql、OS相关信息以下:c++

Mysql:5.0.96 OS:centos 32 bitsql

最近公司要上新的业务,指明数据库使用的是mysql5.0版本。若是是使用rpm包安装的话,那就很简单了。直接使用yum安装便可,命令以下:数据库

yum –y install mysql mysql-servercentos

clip_image001

clip_image002

Yum方式安装完毕后,直接启动mysql数据库服务便可。以下图:服务器

clip_image003

这样基本上就能够了。ide

可是这样安装mysql数据库,没有进行定制。好比mysql数据库的数据文件存储位置。rpm形式安装的数据文件默认位置为/var/lib/mysql。这个咱们能够经过mysql的配置文件查看所得,以下图:工具

clip_image004

实际的状况是,咱们新的业务要求mysql数据库的数据文件须要单独进行存放,这个使用rpm形式就不太容易达到要求。因此打算使用源码进行编译安装,并且本身也没有对mysql数据库进行源码安装过。恰好趁此次机会学习如何对mysql数据库进行源码安装。学习

首先,在相应的网站下载mysql的安装包。为何说是相应的网站,而不是mysql的官网。由于如今在官网没法下载到5.0版本的,只能下载到5.5以上的版本。我如今是在这个网站下载的:http://download.mysql.cn/src/网站

下载完毕上传到服务器上,具体如何上传你可使用winscp、FTP。或者也可使用lrzsz这个软件。

我如今使用的就是lrzsz这个软件,若是你的服务器没有安装的话,能够经过:

yum –y install lrzsz

进行安装,以下图:

clip_image005

rz 是上传的命令,sz是下载的命令。

咱们如今使用日志命令把mysql的安装包,上传到服务器上,以下图:

clip_image006

clip_image007

clip_image008

Mysql安装包已经上传完毕,那么咱们如今进行安装mysql以前的工做。

安装mysql编译所须要的工具包,以下图:

clip_image009 clip_image010

clip_image011

yum -y install gcc gcc-c++ ncurses-devel

工具包安装完毕后,咱们来新建相关的用户。第一个用户ilanni,用来安装mysql使用。第二个用户是mysql,用来运行mysql的。以下图:

clip_image012

把mysql安装包移动到ilanni用户的家目录下,并解压,以下图:

clip_image013

clip_image014

以上工做是前提工做,作完后。咱们如今进入mysql-5.0.96目录开始安装mysql。

首先编译mysql数据库,以下图:

clip_image015

./configure --prefix=/usr/local/mysql 其中/usr/local/mysql为mysql数据库的安装位置。

clip_image016

clip_image017

能够看到没有报错,那咱们开始make,以下图:

clip_image018

Make过程比较慢,我这边大约10分钟左右。

clip_image019

Make终于完毕了,经过上图能够没有报错。

下面开始make install,以下图:

clip_image020

clip_image021

Make install仍是比较快的,能够看到没有报错。

Mysql已经安装完毕,下面开始进行相关的配置。

仍是在该安装目录下,以下图:

clip_image022

复制support-files目录下的my-medium.cnf到/etc/下做为mysql的配置文件:

cp support-files/my-medium.cnf /etc/my.cnf

clip_image023

复制support-files目录下的mysql.server到/etc/init.d/目录下做为mysql的启动文件

clip_image024

如今咱们来启动下使用/etc/init.d/mysqld启动mysql 试下,以下图:

clip_image025

能够看到系统提示咱们,没有执行该脚本的权限。而mysqld脚本的权限,看下图:

clip_image026

能够很明显的看到目前该脚本的权限为744,根本没有执行权限。

如今更改该脚本的权限,以下图:

clip_image027

Ok,该文件的权限修改完毕后,咱们来初始化mysql数据库。在文章的开头我就说了,我如今要把mysql的数据文件存放在/data目录下。

首先要建立/data目录,并修改该目录的所属用户及用户组。以下图:

clip_image028

修改完毕后,咱们还须要修改/usr/local/mysql的所属用户及用户组,以下图:

clip_image029

以上修改完毕后,咱们还须要修改mysql的配置文件。主要是要在配置文件中加入目前本身定义数据文件位置,以下图:

clip_image030

以上全部的修改进行完毕后,咱们在执行mysql安装目录scripts下mysql_install_db文件,以下图:

clip_image031

./scripts/mysql_install_db --user=mysql 中的--user=mysql必定要有。

咱们来查看mysql初始化的结果,查看/data目录,以下图:

clip_image032

能够看到mysql的默认数据mysql及test都在里面。

如今咱们来启动mysql看看实际的状况,以下图:

clip_image033

/etc/init.d/mysqld start

若是要把mysql开机启动,可使用chkconfig命令。以下图:

clip_image034

若是你想在如何目录下直接mysql命令,须要把/usr/local/mysql/bin路径加入到全局设置/etc/profile文件中,以下图:

clip_image035

Ok,到此mysql数据库就安装完毕。

若是mysql客户端链接,mysql服务比较慢的话。咱们须要在my.cnf文件中加入skip-name-resolve,以下:

wKiom1RXLsnhbFsiAACS1IQBpCE094.jpg

PS:有关本次实验使用的命令以下,在执行过程当中建议尽可能按照命令的顺序进行操做:

yum -y install gcc gcc-c++ ncurses-devel

tar xf mysql-5.0.22.tar.gz

useradd ilanni

useradd -s /sbin/nologin mysql

cd /home/ilanni/mysql-5.0.22

./configure --prefix=/usr/local/mysql

make

make install

cp /home/ilanni/mysql-5.0.96/support-files/my-medium.cnf /etc/my.cnf

cp /home/ilanni/mysql-5.0.96/support-files/mysql.server /etc/init.d/mysqld

chmod -R 755 /etc/init.d/mysqld

chown -R mysql:mysql /usr/local/mysql

mkdir /data

chown -R mysql:mysql /data

/usr/local/mysql/bin/mysql_install_db --basedir=/usr/local/mysql

/etc/init.d/mysqld start

echo PATH=$PATH:/usr/local/mysql/bin/ >>/etc/profile

tail -10 /etc/profile

source /etc/profile