MySQL如何源码安装

50次阅读
没有评论

共计 5569 个字符,预计需要花费 14 分钟才能阅读完成。

丸趣 TV 小编给大家分享一下 MySQL 如何源码安装,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

源码安装的两种方法

MySQL 的源码安装有两种方法可供参考。

Use a standard MySQL source distribution,这种方法其实就是下载源码压缩包,然后通过 cmake 来构建部署。

比如 5.6 版本的源码包,可以参考链接下载:

https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz 安装说明和步骤可以参考:

http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html 对于 MySQL 5.7 把对应版本改一下就可以,差别不是很大。

或者到官网直接点击下载也可以。

安装的详细步骤我们等下细说,目前网站上看到的绝大多数源码安装都是这种方式。

Use a MySQL development tree,这种方式是通过开发源码树的方式来编译部署。主要的方式就是基于 git.

这种方式相对来说,感觉就是在参与开发一个项目一般,有着很完善的版本管理。

首先使用 git 来开启安装,会从 github 上来抓取。

# git clone https://github.com/mysql/mysql-server.git 这个过程会持续一些时间,完成之后目录变成了多大。大概 1.5G, 而源码压缩包大概就是几十 M, 差别非常大。

# du -sh .

1.5G . 我们使用 git 来查看版本的情况,发现 MySQL 8.0 的代码也可以抓取了,如果想尝尝鲜,掌握新版本新特性,这种方式还是比较高效的。

# git branch -r

origin/5.5

origin/5.6

origin/5.7

origin/8.0

origin/HEAD – origin/5.7

origin/cluster-7.2

origin/cluster-7.3

origin/cluster-7.4

origin/cluster-7.5 比如我们选择 5.7 版本,

# git checkout 5.7

Checking out files: 100% (21703/21703), done.

Switched to branch 5.7 接下来的事情就和源码包安装差不多了。我们放在一起说。

先来了解下安装的几个命令

其实源码安装的步骤还是很常规,时间都在编译的过程中,你可以看到屏幕里满屏的日志输出,感觉好像你在做什么超级高深的事情一样。其实编写这个软件的人才是真心牛叉,不服你想想你安装的时候,除了 cmake,
make ,make install 之外,操作的步骤也要简单的多。

其实很多开源软件安装都是 make,make install 这样的步骤,这个过程后面到底发生了什么。

make 的命令使用细则如下:

make [options] [targets] [VAR=VALUE]…

[options] 是命令行选项,可以用 make –help 命令查看全部,[VAR=VALUE] 是在命令行上指定环境变量,而 target 则是 Makefile 里面的规则。Makefile 里面的内容有时候看不大明白。

可以参考这个, 这个列表引用自:http://mp.weixin.qq.com/s/rp50qrNipmdBBOyNTkGJoQ

AR 函数库打包程序,可创建静态库.a 文档。默认是 ar。AS 汇编程序。默认是 as。CC C 编译程序。默认是 cc。CXX
C++ 编译程序。默认是 g++。CPP C/C++ 预处理器。默认是 $(CC) -E。FC Fortran 编译器。默认是 f77。PC
Pascal 语言编译器。默认是 pc。YACC Yacc 文法分析器。默认是 yacc。ARFLAGS
函数库打包程序的命令行参数。默认值是 rv。ASFLAGS 汇编程序的命令行参数。CFLAGS C 编译程序的命令行参数。CXXFLAGS
C++ 编译程序的命令行参数。CPPFLAGS C/C++ 预处理器的命令行参数。FFLAGS Fortran 编译器的命令行参数。PFLAGS
Pascal 编译器的命令行参数。YFLAGS Yacc 文法分析器的命令行参数。LDFLAGS 链接器的命令行参数。prefix
/usr/localexec_prefix $(prefix)bindir $(exec_prefix)/binsbindir
$(exec_prefix)/sbinlibexecdir $(exec_prefix)/libexecdatadir
$(prefix)/sharesysconfdir $(prefix)/etcsharedstatedir
$(prefix)/comlocalstatedir $(prefix)/varlibdir $(exec_prefix)/libinfodir
$(prefix)/infoincludedir $(prefix)/includeoldincludedir
$(prefix)/includemandir $(prefix)/mansrcdir 需要编译的源文件所在的目录,无默认值

这样可能会清楚一些了,至少我们知道大概要做的事情了。

安装前的准备

安装前,做以下几件事情。创建 mysql 用户组,创建 mysql 用户。

groupadd mysql

useradd -r -g mysql -s /bin/false mysql 接下来的工作就需要花点功夫了,那就是环境依赖的安装包。

对于 MySQL 5.7 来说,boost 是需要的,否则无法编译,这样下载部署。当然 boost 在 MySQL 5.6 不是必需。

wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

tar -zxvf boost_1_59_0.tar.gz -C /usr/local/ 还有一个字符终端处理库 ncurses 是一定要检查的,可以这样下载。

http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.8.tar.gz 下载后使用./configure,make,make install 即可安装。

安装后,可以使用如下的方式来检测是否安装成功。

# ll /usr/lib/libncurse*

-rw-r–r– 1 root root 669034 Mar 23 13:31 /usr/lib/libncurses.a

-rw-r–r– 1 root root 166630 Mar 23 13:31 /usr/lib/libncurses++.a

-rw-r–r– 1 root root 3501680 Mar 23 13:31 /usr/lib/libncurses_g.a 如果饶有兴致,还可以写一小段代码来检测。

#include unistd.h

#include stdlib.h

#include curses.h

int main()

{

initscr();

move(5, 15);

printw(%s , Hello world);

refresh();

sleep(2);

endwin();

exit(EXIT_SUCCESS);

} 这么运行即可。

g++ a.c -lncurses ./a.out 如果看到 Hello world, 证明安装是没有问题的。

最重要的一点,那就是保证 cmake 是可用的,没有的话,yum install cmake 安装一下。

同时 gcc,bison 的版本也要注意一下,不能太低。

源码安装

目前压缩包解压后可以看到的 cmake 支持版本很多。

# ll /root/soft/mysql_source_code/mysql-5.6.35/cmake/os

total 60

-rw-r–r– 1 7161 31415 1402 Nov 28 21:36 AIX.cmake

-rw-r–r– 1 7161 31415 773 Nov 28 21:36 Cygwin.cmake

-rw-r–r– 1 7161 31415 951 Nov 28 21:36 Darwin.cmake

-rw-r–r– 1 7161 31415 1139 Nov 28 21:36 FreeBSD.cmake

-rw-r–r– 1 7161 31415 1714 Nov 28 21:36 HP-UX.cmake

-rw-r–r– 1 7161 31415 1658 Nov 28 21:36 Linux.cmake

-rw-r–r– 1 7161 31415 838 Nov 28 21:36 OS400.cmake

-rw-r–r– 1 7161 31415 4242 Nov 28 21:36 SunOS.cmake

-rw-r–r– 1 7161 31415 14652 Nov 28 21:36 WindowsCache.cmake

-rw-r–r– 1 7161 31415 8011 Nov 28 21:36 Windows.cmake 我们开始安装,值得一提的是,我是打算同服务器上安装多个版本,所以就在 /usr 下指定了不同的安装目录,数据目录。

cmake .

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql_5.6

-DMYSQL_DATADIR=/home/mysql_5.6

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci

-DEXTRA_CHARSETS=all

-DENABLED_LOCAL_INFILE= 1 一般准备充分,这个过程就是分分钟的事情,如果 ncures 没安装,就可能抛出如下的错误退出。

— Could NOT find Curses (missing: CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:85 (MESSAGE):

Curses library not found. Please install appropriate
package, 接下来是 make 操作,我们可以做点改进,那就是加快编译的速度,使用 - j 参数,根据 CPU 核数指定编译时的线程数,因为默认是 1 个线程编译,如果不知道该启用几个,可以换算一下。

make -j `grep processor /proc/cpuinfo | wc -l`

满屏幕的编译日志,看起来很有成就感。

make 阶段的事情做完之后,就是 make install, 这个过程会正式安装软件到指定的目录,也是我们的终极目标。

值得一提的是,如果因为空间问题异常退出,还是最好删除 CMakeCache.txt 文件,重新 cmake 一遍,然后 make,make install

创建数据库

这个阶段的工作就很常规了,我们简化一下,两个命令初始化,启动数据库。

启用的参数模板类似于:

[mysqld]

# server configuration

datadir=/home/mysql_5.7

basedir=/usr/local/mysql_5.7

port=3308

socket=/home/mysql_5.7/mysql.sock

server_id=3308

gtid_mode=ON

enforce_gtid_consistency=ON

master_info_repository=TABLE

relay_log_info_repository=TABLE

binlog_checksum=NONE

log_slave_updates=ON

log_bin=binlog

binlog_format=ROW

innodb_log_file_size=1000M

max_prepared_stmt_count=150000

max_connections = 3000

innodb_buffer_pool_size = 24G5.7 的操作如下:

初始化数据字典:

/usr/local/mysql_5.7/bin/mysqld –initialize-insecure –user=mysql
–basedir=/usr/local/mysql_5.7 –datadir=/home/mysql_5.7 启动数据库:

/usr/local/mysql_5.7/bin/mysqld_safe –defaults-file=/home/mysql_5.7/s.cnf

5.6 的操作如下:

初始化数据字典

/usr/local/mysql_5.6/s/mysql_install_db –user=mysql –basedir=/usr/local/mysql_5.6 –datadir=/home/mysql_5.6 启动数据库

/usr/local/mysql_5.6/bin/mysqld_safe –defaults-file=/home/mysql_5.6/s.cnf 后面的事情你懂的,我们可以连接到源码版的数据库了。

# /usr/local/mysql_5.7/bin/mysql –socket=/home/mysql_5.7/mysql.sock –port=3308

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 7

Server version: 5.7.17-log Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

enjoy

以上是“MySQL 如何源码安装”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计5569字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)