mysql5.6源码编译_MySQL 5.6 源码编译安装

前言

本文适合对于 mysql 有调试需求、或者在国产化平台上通过源码方式安装 mysql 数据库的场景;并且标题虽然指明是 mysql 5.6 版本,5.7 版本也基本适用,只是 cmake 编译参数与初始化数据库时稍有不同。

文中安装过程较为精简,希望对于阅读此文者有所帮助之外,还能适当加以思考;另外,由于本文是个人实践过程所得,纯粹是为了记录,文中如果出现错误之处,或者实践过程中发现问题,还请联系本人修正。

mysql 5.6 源码编译安装

一、mysql 源码编译需要依赖 ncurses 库,需要检查是否已安装 libncurses-devel 包,如果未安装,可以使用 yum 进行安装。此次 Kylin Linux 使用源码包编译安装:

wget http://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz

tar -zxvf ncurses-5.9.tar.gz

cd ncurses-5.9/

# 一般 linux 系统,--build 参数指定为 x86_64 即可

# 国产系统中,hostnamectl 可以查看CPU架构,如果是 arm64/aarch64,则需要使用以下命令

./configure --with-shared --without-debug --without-ada --enable-overwrite --build=arm-gnu-linux

# 或者是下面这个命令:

# ./configure --with-normal --without-debug --without-ada --enable-overwrite -build=arm

make -j4

make install

# 注意:如果编译过程中出错,则可能需要修改 curses.tail 文件中带 mouse_trafo 的行,去掉注释

二、mysql 一般用 cmake 编译较为方便,所以先源码编译安装 cmake:

wget https://github.com/Kitware/CMake/releases/download/v3.14.6/cmake-3.14.6.tar.gz

tar -zxvf cmake-3.14.6.tar.gz

cd cmake-3.14.6/

./configure && gmake -j4 && gmake install

(以下命令检查是否安装完成)

cmake --version

三、源码安装 mysql-5.6.45.tar.gz + boost:

由于 mysql 5.7 源码包在 Kylin Linux 上编译失败,这里用 mysql 5.6 安装。mysql 源码还依赖于 boost,故需要下载两个包,即 mysql 5.6 + boost。boost 可以从其官网下载,本人偷懒下载了 mysql 官网的 mysql-boost-5.7.27.tar.gz 包,里面包含了 boost,然后拷贝到 mysql-5.6 的解压目录里。

# ---- 创建 mysql 用户(略)

wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.45.tar.gz

tar -zxvf mysql-5.6.45.tar.gz

cp -R mysql-5.7.27/boost/ mysql-5.6.45/ # -------> 从 mysql-boost-5.7.27.tar.gz 的解压缩目录里拷贝过来

cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql/data -DSYSCONFDIR=/etc -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost

make -j8

make install

cd /var/lib/

chown mysql:mysql ./mysql -R

四、创建 my.cnf 配置文件

cd /var/lib/mysql

cp support-files/my-default.cnf /etc/my.cnf

chown mysql:mysql /etc/my.cnf

vi /etc/my.cnf

my.cnf 参考内容如下:

[mysqld]

basedir=/var/lib/mysql

datadir=/var/lib/mysql/data

#bind-address=0.0.0.0

port=3306

socket=/tmp/mysql.sock

innodb_file_per_table=1

default-storage-engine=INNODB

explicit_defaults_for_timestamp=true

symbolic-links=0

max_connections=1000

log-error=/var/lib/mysql/mysql.log

pid-file=/var/lib/mysql/mysql.pid

五、初始化 mysql 数据库与配置

cd /var/lib/mysql

cp support-files/mysql.server /etc/init.d/mysql

chown mysql:mysql /etc/init.d/mysql

cp bin/* /usr/bin/

chkconfig --add mysql

chkconfig mysql on

mkdir data

chown mysql:mysql data/

./scripts/mysql_install_db --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data --defaults-file=/etc/my.cnf --random-passwords

# MySQL 5.7 初始化过程如下:

# ./bin/mysqld --defaults-file='/etc/my.cnf' --initialize --user=mysql

/etc/init.d/mysql start # 正常情况下启动会出现 Success,否则启动失败

# 或者 service mysql start

cat /root/.mysql_secret # ---> 查看随机密码(仅限 5.6 版本,5.7 版本的初始随机密码位于 log-error 指定的日志文件中)

mysql -uroot -pXdRmLO1T1pRRM7Jc # 登陆后需要修改密码

# 最后开放防火墙端口、远程连接权限等

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值