前言

本文适合对于 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 # 登陆后需要修改密码

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

mysql5.6源码编译_MySQL 5.6 源码编译安装相关推荐

  1. mysql windows编译_mysql在windows下的编译

    今天摆弄了半天,终于把mysql在windows上编译通过了,特别记录下来,分享给大家. 我下载的是mysql-5.5.13,下载后,打开根目录下面的INSTALL-WIN-SOURCE文件,里面让我 ...

  2. mysql5.5 5.7区别_mysql 5.5 和5.7 安装的区别

    mysql 5.5 的安装步骤: 1 软件安装 [root@dg2 ~]# rpm -ivh MySQL-server-advanced-5.5.54-1.el6.x86_64.rpm warning ...

  3. MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署

    源码部署 1. 需要先卸载一些软件 centos7 中需要先卸载 mariadb-libs 软件包 # rpm -e --nodeps mariadb-libs 2. 安装依赖包 yum -y ins ...

  4. mysql整站源码安装_MySQL入门01-MySQL源码安装

    操作系统:CentOS 6.7 MySQL版本:5.6.30 1.前期准备 首先需要CMake,可以yum直接安装: ``` yum install cmake ``` 也可以官网 https://c ...

  5. mysql 源码 sln_在windows下使用vs2013编译和调试mysql源代码

    在windows下使用vs2013编译和调试mysql源代码 1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)p ...

  6. 编译hadoop2.2.0源码时报错

    编译hadoop2.2.0源码时, mvn install -DskipTests 报错: [ERROR] COMPILATION ERROR : [INFO] ------------------- ...

  7. 用SVN下载编译Spring3.2.4源码导入eclipse

    想学习研究下Spring源码,就在网上搜索一堆资料,别人的东西在自己的电脑上总是有问题.总结下自己的使用方法,以便备忘. 前提:导入eclipse成功,导入不了myeclipse. 1.准备条件: ( ...

  8. as工程放到源码编译_Android 7.1源码编译导入AS完整教程

    本教程仅针对Android 7.1系统,为便于虚拟机备份和出现问题时的还原,本教程分为3步:初始化编译环境.源码同步.编译源码导入Android Studio. 编译源码:Android7.1.2_r ...

  9. ubuntu编译并调试OpenJDK8源码实践

    最近打算研究一下 jvm 相关的知识,所以想编译 OpenJDK 的源码,一直在Mac上面编译,但是总是出现莫名其妙的error,还找不到有效的解决方式,所以还是进入 Ubuntu 下面进行编译,虽然 ...

最新文章

  1. R语言readLines函数、n.readLines函数、readline函数读取文本文件实战
  2. 学习笔记——ArrayList总结
  3. 控件不能与用户交互的原因
  4. windows API 开发飞机订票系统 图形化界面 (二)
  5. verilog 不可综合语句 总结 汇总(Z)
  6. 渗透测试入门20之渗透测试七阶段
  7. Oracle 20c 新特性:SQL 宏支持(SQL Macro)Scalar 和 Table 模式
  8. dlsym 如何查看一个so里面的_如何查看并且使用android系统本身包含的so库?
  9. linux大量生成测试文件,Shell脚本创建指定大小文件的测试数据
  10. RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势...
  11. [BZOJ 3709] Bohater
  12. MySQL的存储函数与存储过程的区别
  13. 【嵌入式模块】直流电机驱动L298N,TB6612详解
  14. JAVA Future类的使用详解
  15. 吉林大学操作系统上机(实验二:处理机调度——实时调度算法EDF和RMS)
  16. 基于Ip的刷投票排名及刷百度推广的自动化实现
  17. 机器学习之决策树算法
  18. 2020微信小微商户、微信支付商业版签约商户流程
  19. 在线学习平台网站分享 (持续更新)
  20. Spring-全面详解(基础知识)

热门文章

  1. ActiveMQ(一)
  2. tomcat安全配置之禁用Directory Listing
  3. PostgreSQL的德哥教程
  4. android之uses-permission
  5. 判断一个变量是不是数组
  6. nginx中配置react-router参数跳转
  7. socket inet_pton
  8. 通过使用Byte Buddy,便捷地创建Java Agent
  9. Solaris中创建磁盘集报”rpc.metad:Permission denied”错误
  10. mysql grant 语法格式_MySQL grant 语法的详细解析