Mysql-5.5源码安装入门过程及源码安装的相关知识笔记
很多试用的程序只有源代码(比如 tar.gz )可用,没人提供 RPM 或者Debian 包。你只好下载源代码,解压,然后手动编译。
在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包,不同的最终用户经过编译就可以正确运行,这也是非常符合c语言的设计哲学的,一次编写,到处编译么,而常见的二进制包,比如rpm和deb,软件开发者必须为每种特定的平台定制好专门的软件包,这个通过rpm文件的后缀名就可以初见端倪,比如ppc,sparc,i386之类,在这里不做过多的陈述
最常见源码包的就两种(XXXX.tar.gz or XXXX.tar.bz2),其实这些源码包都是由2个工具压缩而成的,tar.gz结尾的文件用到的工具是tar和gunzip,而tar.bz2结尾的文件所使用的工具是tar和bzip2,之所以这样做是因为,tar仅仅能够打包多个文件但是没有压缩的功能,而gz和bz2却刚好相反,仅能够压缩单个文件,这样我们常见的源码包实际上是通过tar先将不同的源文件打包,然后再通过gunzip或者bzip2压缩后发布的
在安装过程中所用的命令功能:
1、Wget是一款免费开放源代码下载工具,可以运行在Unix和Linux操作系统下。
-r -A.jpg(只下载JPG图片)
-i(下载txt下的文件)
-b(后台下载) (断点续传) -P 指定下载到本机的哪个目录
-nd 表示不在本机重新创建目录结构。 -t 1 重复次数为1次
2、./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
这一步一般用来生成 Makefile,为下一步的编译做准备(即让make install从中读取指令),你可以通过在 configure 后加上参数来对安装进行控制,比如:
./configure --prefix=/usr的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin)。
3、make是用来编译的,它从Makefile中读取指令,然后编译。(make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装)。
4、make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
make insatllmake check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)
以下是我在wdos系统上 mysql5.5的源码安装过程记录~~~
一、安装cmake工具
注:Mysql从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具,
注:使用configure,编译完成之后将生成config.log和config.status 文件。
cmake,编译完成之后将生成cmakefError.log和cmakeoutput.log文件。
创建目录/opt/mysql_cmake,然后进入目录,用wget命令下载cmake源码包。如下:
查看压缩包,已在该目录下了
用tar命令接压缩cmake包,tar
bz2格式用j,gz格式用z,c是创建,x是解压缩,v是详细信息,f是指定文件
#tar -zvxf cmake-2.8.3.tar.gz
指定安装的位置cmake-2.8.3,解压缩完之后就默认自动生成该目录文件。
#cd cmake-2.8.3
./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,
并不是需要CC或GCC,它是个shell脚本。(预编译),生成 Makefile。
# ./configure //诸 / 前有
.
make是用来编译的,它从Makefile中读取指令,然后编译。
# make
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置cmake-2.8.3。
# make install
二、安装Mysql-5.0
先创建目录mkdir /opt/mysql_mysql,然后cd /opt/mysql_mysql,再用wget命令下载mysql源码包。如下:
用tar命令解压缩mysql源码包
#tar -zvxf mysql-5.5.25a.tar.gz
Ll命令查看,解压缩成功之后便自动生成mysql-5.0目录文件
进入该目录,开始检测、编译、安装源码包,如下
#cd mysql-5.5.25a
Cmake编译,,相关参数的设置可以参照网上的一些资料。
注:Cmake编译时可能遇到的如下问题
看提示的解决方法:(remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.)
就是要安装courses包,
命令:Yum install ncurses-devel //安装
yum安装之后 还是报错,那是因为会产生CMakeCache.txt文件,每次cmake之前
需要删除它.
命令:Rm -rf CMakeCache.txt删除文件
然后继续运行cmake
显示成功了。
分别运行make和make install 编译安装
# make
# make install
三、设置mysql数据库
添加mysql用户和用户组,用来运行mysql数据库
设置目录/var/local/mysql的权限为可写,并将目录的拥有者设置为mysql组的使用者mysql用户
创建目录/var/mysql,并设置其拥有者,备份服务文件,为后面的数据库初始化操作做准备
# make -p /var/mysql
初始化数据库。利用mysql_install_db 生成数据库授权表
进入服务文件,添加指定路径。
Basedir:参数指定了安装 MySQL 的安装路径
Datadir:参数指定了 MySQL 的数据库文件放在什么路径下
# vi /etc/init.d/mysql
设置开机启动
(用chkconfig增加一项新的服务并指定读系统服务mysql要在哪个执行等级中开启或关闭)
重启服务成功:
# /etc/init.d/mysqld start
连接mysql
注:可能出现的问题问题
原因:由于mysql 默认的mysql.sock 是在/var/lib/mysql/mysql.sock,但linux系统总是去/tmp/mysql.sock查找,所以会报错。
解决方法: 创建/var/lib/mysql/mysql.sock的软连接:当系统找到/tmp/mysql.sock时,会自动连接到/var/lib/mysql/mysql.sock
具体用法是:ln -s 源文件 目标文件。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。
再次连接mysql,成功,初始密码为空,即直接敲-回车
修改root用户密码
注:可能出现的问题及解决方法
问题:mysql> update mysql.user set password=password(”123456”)where User=”root”;
mysql> flush privileges;
mysql> quit ;
用以上语句修改后不生效,即再次登陆时密码还是为空
解决:采用以下修改方法,具体原因我也不知道。
四、对mysql的基本使用
创建数据库
创建表
向空表插入数据
查询语句使用select
mysql基本操作我就不一一列出了,可以根据自己需要操作。