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 # 登陆后需要修改密码
# 最后开放防火墙端口、远程连接权限等
mysql5.6源码编译_MySQL 5.6 源码编译安装相关推荐
- mysql windows编译_mysql在windows下的编译
今天摆弄了半天,终于把mysql在windows上编译通过了,特别记录下来,分享给大家. 我下载的是mysql-5.5.13,下载后,打开根目录下面的INSTALL-WIN-SOURCE文件,里面让我 ...
- 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 ...
- MySQL 源码 需要 什么基础_MySQL 基础之 源码 部署
源码部署 1. 需要先卸载一些软件 centos7 中需要先卸载 mariadb-libs 软件包 # rpm -e --nodeps mariadb-libs 2. 安装依赖包 yum -y ins ...
- mysql整站源码安装_MySQL入门01-MySQL源码安装
操作系统:CentOS 6.7 MySQL版本:5.6.30 1.前期准备 首先需要CMake,可以yum直接安装: ``` yum install cmake ``` 也可以官网 https://c ...
- mysql 源码 sln_在windows下使用vs2013编译和调试mysql源代码
在windows下使用vs2013编译和调试mysql源代码 1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)p ...
- 编译hadoop2.2.0源码时报错
编译hadoop2.2.0源码时, mvn install -DskipTests 报错: [ERROR] COMPILATION ERROR : [INFO] ------------------- ...
- 用SVN下载编译Spring3.2.4源码导入eclipse
想学习研究下Spring源码,就在网上搜索一堆资料,别人的东西在自己的电脑上总是有问题.总结下自己的使用方法,以便备忘. 前提:导入eclipse成功,导入不了myeclipse. 1.准备条件: ( ...
- as工程放到源码编译_Android 7.1源码编译导入AS完整教程
本教程仅针对Android 7.1系统,为便于虚拟机备份和出现问题时的还原,本教程分为3步:初始化编译环境.源码同步.编译源码导入Android Studio. 编译源码:Android7.1.2_r ...
- ubuntu编译并调试OpenJDK8源码实践
最近打算研究一下 jvm 相关的知识,所以想编译 OpenJDK 的源码,一直在Mac上面编译,但是总是出现莫名其妙的error,还找不到有效的解决方式,所以还是进入 Ubuntu 下面进行编译,虽然 ...
最新文章
- R语言readLines函数、n.readLines函数、readline函数读取文本文件实战
- 学习笔记——ArrayList总结
- 控件不能与用户交互的原因
- windows API 开发飞机订票系统 图形化界面 (二)
- verilog 不可综合语句 总结 汇总(Z)
- 渗透测试入门20之渗透测试七阶段
- Oracle 20c 新特性:SQL 宏支持(SQL Macro)Scalar 和 Table 模式
- dlsym 如何查看一个so里面的_如何查看并且使用android系统本身包含的so库?
- linux大量生成测试文件,Shell脚本创建指定大小文件的测试数据
- RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势...
- [BZOJ 3709] Bohater
- MySQL的存储函数与存储过程的区别
- 【嵌入式模块】直流电机驱动L298N,TB6612详解
- JAVA Future类的使用详解
- 吉林大学操作系统上机(实验二:处理机调度——实时调度算法EDF和RMS)
- 基于Ip的刷投票排名及刷百度推广的自动化实现
- 机器学习之决策树算法
- 2020微信小微商户、微信支付商业版签约商户流程
- 在线学习平台网站分享 (持续更新)
- Spring-全面详解(基础知识)