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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

本次实验的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

可以很明显的看到目前该脚本的权限为644,根本没有执行权限。

现在更改该脚本的权限,如下图:

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,如下:

2014-11-03_152106

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
关系型数据库 MySQL 分布式数据库
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
《MySQL 简易速速上手小册》第6章:MySQL 复制和分布式数据库(2024 最新版)
28 2
|
15天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0
|
15天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
31 0
|
1天前
|
SQL 存储 关系型数据库
数据库开发之mysql前言以及详细解析
数据库开发之mysql前言以及详细解析
6 0
|
5天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
5天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”
|
5天前
|
SQL NoSQL 关系型数据库
初识MySQL数据库——“MySQL数据库”
初识MySQL数据库——“MySQL数据库”
|
8天前
|
关系型数据库 MySQL 数据库
数据库基础(mysql)
数据库基础(mysql)
|
8天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
32 3
|
9天前
|
存储 关系型数据库 MySQL
【后端面经】【数据库与MySQL】为什么MySQL用B+树而不用B树?-02
【4月更文挑战第11天】数据库索引使用规则:`AND`用`OR`不用,正用反不用,范围中断。索引带来空间和内存代价,包括额外磁盘空间、内存占用和数据修改时的维护成本。面试中可能涉及B+树、聚簇索引、覆盖索引等知识点。MySQL采用B+树,因其利于范围查询和内存效率。数据库不使用索引可能因`!=`、`LIKE`、字段区分度低、特殊表达式或全表扫描更快。索引与NULL值处理在不同数据库中有差异,MySQL允许NULL在索引中的使用。
12 3