mysql源码安装

我准备学下mysql的源码,所以编译和调试源码是很重要的一部分。
好了废话不多说。

我的环境是 CentOS-6.9-x86_64-minimal,这个可以在阿里的源中直接下。
阿里云CentOS6.9下载地址
然后是安装之前的准备工作

先装好环境

yum update
yum -y install cmake
yum -y install bison
yum -y install library*
yum -y install libncurses5-dev
yum -y install g++
yum -y install kdelibs5-dev
yum -y install make
yum -y install gcc-c++

接着创建mysql的程序目录,已经用户和用户组

mkdir -p /usr/local/mysql                 //安装mysql
mkdir -p /usr/local/mysql/data            //存放数据库
groupadd mysql
useradd -r -g mysql mysql

装好了这些环境后,在下载mysql的源码,由于我想学腾讯的tMySQL,而他的版本又是MySQL5.5.24,所以我安装的也是这个版本,你们可以自己选择自己喜欢的版本安装。
下载链接在这里
MySQL源码下载

wget https://downloads.mysql.com/archives/get/file/mysql-5.5.24.tar.gz

下载好之后解压,并进入目录

tar -xzvf mysql-5.5.24.tar.gz
cd  mysql-5.5.24

然后执行

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1

这些cmake参数的意思如下:

参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8     //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all     //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1    //允许从本地导入数据

然后,可能会出现如下错误

-- Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:83 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:127 (FIND_CURSES)
cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)
CMakeLists.txt:268 (MYSQL_CHECK_READLINE)
-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.5.24/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.5.24/CMakeFiles/CMakeError.log".

按照提示是没有安装 ncurses-devel库导致的,于是我们手动安装ncurses-devel,并记得要删除cmake缓存文件CMakeCache.txt,然后重新执行之前的命令。

yum -y install ncurses-devel
rm CMakeCache.txt

然后我们就可以make了,假如你的机器之前安装过mysql然后又卸载了的话,记得将原来的配置文件删掉

rm -rf /etc/my.cnf
make && make clean

然后,如果没有错误的话,那么安装完成,接着来配置mysql

cd /usr/local/mysql
chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql
chown -R mysql:mysql data
cp support-files/my-medium.cnf /etc/my.cnf //将mysql的启动服务添加到系统服务中

然后再利用mysql的脚本来创建数据库
目录在 /usr/local/mysql

scripts/mysql_install_db --user=mysql

然后配置mysql的环境变量

vi /root/.bash_profile
#######################################################
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib #将这一行添加进去

alias l='ls -lrht'

export PATH

######################################################

source /root/.bash_profile

然后就可以在/usr/local/mysql目录下启动mysql了

./bin/mysqld_safe --user=mysql &

然后打开另一个终端输入

mysql -uroot mysql

就可以连接上了
最后加一句如何关闭mysql,在/usr/local/mysql/中执行

# mysqladmin -u root -p shutdown

别手贱用kill命令,会产生僵尸进程的

时间: 2024-12-30 23:46:21

mysql源码安装的相关文章

Linux下mysql源码安装笔记_Mysql

1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件 (1)先安装cmake(mysql5.5以后是通过cmake来编译的) [root@ rhel5 local]#tar -zxv -f cmake-2.8.4.tar.gz [root@ rhel5 local]#cd cmake-2.8.4 [root@ rhel5 cmake-2.8.4]#./configure [root@ rhel5 cmake-2.8.4]#make [root@

MySQL源码安装总结(r12笔记第12天)

作为一个DBA, MySQL源码安装还是要做做的,虽然不是推荐线上批量安装部署,但是自己作为了解MySQL的一个学习过程,还是值得的. 相比商业软件来说,开源的这一点上就让人很羡慕,商业软件我们总是使用各种工具和底层原理去反推,探测,但是离代码还是有一定的距离.当然商业有商业的好,开源有开源的乐,不能一概而论. 值得推荐的安装镜像 对于MySQL的安装部署来说,总是存在各种版本和子版本,其实整理起来非常繁杂,今天看到竟然我狐已经提供了非常的镜像站点 http://mirrors.sohu.com

Linux MySQL源码安装缺少ncurses-devel包

在Red Hat Enterprise Linux Server release 5.7 上用源码安装MySQL-5.6.23时,遇到了" remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel."错误,如下所示 [root@DB-Server mysql-5.6.23]# cm

Linux 下MySQL源码安装完整版

    在Linux中安装MySQL,通常为RPM与源码方式安装.对于生产环境而言,由于需要自定义诸如安装路径.数据文件位置.字符集以及支持的存储引擎等多以源码方式来进行安装.之前有写过一篇关于源码安装的文章,Linux下基于源码方式安装MySQL 5.6,但不是很完整,因此该文可以作为其补充.以下为具体安装步骤,供大家参考.   1.安装前的有关描述必备的包和工具  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.  cmake  :MySQL 5.5开始,使用cmake进行

Linux下MySQL源码编译安装(eg:mysql-5.6.27.tar.gz )

Linux下MySQL源码安装(eg:mysql-5.6.27.tar.gz ): 1:准备MySQL源码安装包: mysql-5.6.27.tar.gz.cmake-3.3.2.tar.gz.ncurses-6.0.tar.gz 注:centos请安装: yum install -y ncurses-devel yum install -y perl-Module-Install.noarch 网址: https://cmake.org/download/ ftp://invisible-is

MySQL 源码scr.rpm安装的一点注意事项

    rpm安装包通常为二进制包(Binary)以及源代码包(Source)两种形式.在使用源码方式安装MySQL的时候,官方网站上下载的源码包通常为scr.rpm格式,而不是直接的tar包,对此,需要先使用rpm命令先安装源码后在进行编译安装,本文是对该方式的描述.   1.下载源码包  http://mirrors.sohu.com/mysql/MySQL-5.6/  http://dev.mysql.com/downloads/mysql/   2.安装rpm#环境suse11:~ #

CentOS 6.3/6.4 Minimal 源码安装 MySQL 5.6.10

CentOS MySQL 5.6正式版发布了,相对于5.5版本作出了不少改进,其源码安装配置方式也有所变化,本文根据实际操作,不断尝试,精确还原了安装的具体步骤. 环境:CentOS 6.3/6.4 最小化缺省安装,配置好网卡. 安装MySQL前,确认Internet连接正常,以便下载安装文件. 先使用 yum -y update 指令升级系统到最新版本. 本安装将MySQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本. # 修改防火墙设置,打开

CentOS 6.3下如何源码安装MySQL GA 5.6.10

在编译安装 MySQL 5.6.x 之前,需要最少安装的包有:bison,gcc.gcc-c++.cmake.ncurses-devel, 安装这些依赖包后,把原来解压出来的mysql源码目录删除掉,再重新解压出来,再去编译. -- 0 Download mysql-5.6.10.tar.gz in dev.mysql.com -- 1 安装cmake软件包 tar xzvf cmake-2.8.3.tar.gz ./bootstrap gmake gmake install -- 2 crea

Linux+Nginx+MySql+Php既LNMP源码安装

我们都知道Apache作为一款出色的web服务器占据了市场大半个江山,他的地位目前还无人能取代,但是除了Apache,,在web服务器软件行列,Nginx以其性能稳定.功能丰富.运维简单.处理静静态文件速度快且消耗系统资源极少的优势,也同样赢得了许多人的青睐. 下面让我们能来了解一下linux下Nginx+mysql+php的源码安装方法. 准备工具: mysql-5.5.15-linux2.6-i686.tar.gz nginx-1.0.11.tar.gz pcre-devel-6.6-2.e