mysql源码安装

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 准备学习mysql源码,于是我决定先自己用源码来安装mysql,方便以后编译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 install

然后,如果没有错误的话,那么安装完成,接着来配置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命令,会产生僵尸进程的

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 MySQL 数据库
mysql源码安装详解
mysql源码安装详解
327 0
mysql源码安装详解
|
17天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
53 3
|
18天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
34 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
226 2
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
58 3
|
3月前
|
关系型数据库 MySQL Linux
【一键解锁神秘力量!】CentOS 7 通过编译源码方式安装 MySQL 数据库 —— 从零到英雄的数据库安装实战秘籍!
【8月更文挑战第9天】随着业务增长,对数据库的需求日益提高。在 CentOS 7 中,通过编译源码安装 MySQL 可提供更高定制性和灵活性。本文详细介绍从准备环境、下载源码、配置编译参数到安装 MySQL 的全过程,并对比 RPM 包安装方法,帮助读者根据需求选择合适方案。实践时需注意备份数据、选择合适版本、确保安全性和调优性能等要点。
217 1
|
关系型数据库 MySQL C语言
源码安装MySQL8.0 1
源码安装MySQL8.0
139 0
|
关系型数据库 MySQL
麒麟系统源码安装mysql
麒麟系统源码安装mysql
114 0
|
关系型数据库 MySQL 数据安全/隐私保护
源码安装MySQL8.0 2
源码安装MySQL8.0
|
关系型数据库 MySQL Linux
阿里云linux源码安装mysql
阿里云linux源码安装mysql