Heim  >  Artikel  >  Datenbank  >  烂泥:mysql5.0数据库源码编译安装

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

WBOY
WBOYOriginal
2016-06-07 14:52:511143Durchsuche

本文首发于 烂泥行天下 。 本次实验的mysql、OS相关信息如下: Mysql:5.0.96 OS:centos 32 bit 最近公司要上新的业务,指明数据库使用的是mysql5.0版本。如果是使用rpm包安装的话,那就很简单了。直接使用yum安装即可,命令如下: yum –y install mysql m

本文首发于烂泥行天下

本次实验的mysql、OS相关信息如下:

Mysql:5.0.96 OS:centos 32 bit

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

yum –y install mysql mysql-server

clip_image001

clip_image002

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

clip_image003

这样基本上就可以了。

但是这样安装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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn