1 概述
本文主要介绍如何从源代码编译和安装 MySQL 社区版 8.0.20,先介绍一些编译安装相关知识,然后再开始编译安装
2. 了解源代码的编译和安装
2.1制作和配置
make 是一个编译命令,它将在当前目录中查找 Makefile 文件,Makefile 文件记录有关如何编译源代码的详细信息。配置是由软件开发人员编写的检查器,用于检查用户的开发环境并在检查后生成 Makefile 文件。通常,配置会检查以下内容:
2.2 压缩包文件
压缩包文件可以是对源代码进行压缩的文件。一般使用 gzip 进行压缩,通常扩展名是 .tar.gz 或 .tgzgcc源码编译过程,但由于 bzip2 和 xz 等技术压缩得比 gzip 好,所以文件名也会变成扩展名也会做成.tar.bz2 或 .tar.xz 之类的。通常,压缩包文件具有:
2.3 相关组件的源代码编译和安装
2.3.1 编译器
编译器需要能够编译,通常使用 gcc。
2.3.2make+autoconfig
软件以压缩包的方式发布,为了简化编译过程,一般需要根据目标文件文件的依赖性进行编译,但由于make需要Makefile,所以需要自动配置来生成Makefile。
2.3.3 库
内核提供的库和关联的包含文件是必需的。
2.4 静态和动态库
有两种类型的库,动态库和
静态库,其中大部分放在 /lib 和 /lib64 中。
2.4.1 静态库
扩展名为.a,在编译时会直接集成到可执行程序中,因此借助静态库生成的文件会更大,编译后的可执行文件可以直接运行,无需依赖外部库。另外,升级难度大gcc源码编译过程,因为直接集成到程序中,如果升级静态库,则需要重新编译。
2.4.2 动态库
扩展名为.so,与编译时的静态库不同,动态库在程序中只有一个表引脚,当可执行程序需要使用库的功能时,可以读取库来使用,并且生成的可执行文件会更小,并且不能独立执行编译后的程序。此外,升级更方便,不需要重新编译,因为可执行文件会直接指向新的库文件。
2.5 编译安装的常见步骤
请注意,上述步骤是有序的,但如果上一步失败,则无法执行下一步,这意味着必须成功执行上一步才能继续下一步。要完成以上六个步骤的编译安装,通常需要做一些后处理,比如在 PATH 中添加可执行文件,在 /usr/include 和 /etc/ld.so.conf.d 中添加头文件和库文件,在 /etc/man_db.conf 中添加在线帮助文件。
2.6 编译安装前的心理规划
这是最后一个提示,您也可以在安装之前按 ctrl+w 关闭此页面,以防止无数的困扰。
编译安装最常见的问题是版本和依赖问题,版本问题容易
处理起来,可以通过包管理器升级或者自动升级,至于依赖问题,包管理器安装简单,编译安装会让人头疼,因为不知道一个依赖下需要安装多少个依赖。
因此,有必要计划足够的时间和耐心来解决无数的问题,并能够成功编译和安装MySQL和Workbench等小型软件。
没有了,让我们开始吧。
3. 安装 MySQL
3.1 安装依赖
MySQL 需要以下依赖项:
3.2 包管理器安装
作者的 Debian 部门,使用 apt:
sudo apt-get install -y bison git hostname libncurses-dev libssl-dev make openssl pkg-config doxygen cmake make
红帽8.x:
sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen diffutils rpcgen make libtirpc-devel cmake gcc
红帽7.x:
sudo yum install -y bison bzip2 git hostname ncurses-devel openssl openssl-devel pkgconfig tar wget zlib-devel doxygen cmake gcc
其他人自己搜索。
3.2 编译和安装
如果不想使用包管理器进行安装,则可以使用编译安装的形式。
欢迎来到折腾。
3.2.1 安装 cmake
tar -zxvf cmake-3.17.2.tar.gz
cd cmake-3.17.2
./bootstrap --prefix=/usr/local/cmake
make clean
make -j 6 #6为CPU核数,自定义修改,若失败请使用make
make test
sudo make install
3.2.2 安装制作
如果在没有编译器的情况下编译安装失败,可以使用软件包进行安装,作者的 Debian 系统直接使用 apt:
sudo apt install make
3.2.3 安装 GCC
tar -xvf gcc-9.3.0.tar.xz
cd gcc-9.3.0
./contrib/download_prerequisites
mkdir build
cd build
../configure --prefix=/usr/local/gcc -enable-checking=release -disable-multilib
make clean
make -j 6
make test
sudo make install
sudo ln -sv /usr/local/gcc/include /usr/include/gcc
#/etc/ld.so.conf.d/gcc.conf加入以下内容
/usr/local/gcc/lib
/usr/local/gcc/lib64
3.2.4 安装OpenSSL
tar -zxvf openssl-1.1.1g.tar.gz
cd openssl-1.1.1g
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl/ssl
#prefix为安装位置,默认/usr/local
#openssldir为配置文件位置,同时存放证书与密钥对
make clean
make -j 6
make test
sudo make install
sudo ln -sv /usr/local/openssl/include /usr/include/openssl
#/etc/ld.so.conf.d/openssl.conf加上以下内容
/usr/local/openssl/lib
3.2.5 下载提升
官方网站戳到这里。
所需版本为 1.70.0。最新版本目前是 1.73.0,理论上更新后的版本应该可以工作,请在此处下载 1.70.0。如果不自动下载提升库,可以在使用 cmake 生成生成文件时将DDOWNLOAD_BOOST设置为 1。
下载后,您可以解压缩它。
tar -xvf boost_1_70_0.tar.bz2
3.2.6 安装诅咒
tar -zxvf ncurses-6.2.tar.gz
cd ncurses-6.2
./configure --prefix=/usr/local/ncurses
make -j 6
sudo make install
sudo ln -sv /usr/local/ncurses/include /usr/include/ncurses
#/etc/ld.so.conf.d/ncurses.conf加入
/usr/local/ncurses/lib
3.2.7 安装野牛
tar -xvf bison-3.4.tar.xz
cd bison-3.4
./configure --prefix=/usr/local/bison
make -j 6
sudo make install
#/etc/ld.so.conf.d/bison.conf加入
/usr/local/bison/lib
3.2.8 安装 git
tar -xvf git-2.26.2.tar.xz
cd git-2.26.2
./configure --prefix=/usr/local/git
--with-openssl=/usr/local/openssl
--with-libpcre2=/usr/local/pcre2
--with-curl=/usr/local/curl
--with-expat=/usr/local/expat
--with-iconv=/usr/local/iconv
--with-editor=/usr/bin/vim
--with-zlib=/usr/local/zlib
--with-tcltk=/usr/local/tcl
make all doc info
sudo make install install-doc install-html install-info
3.2.9 后续处理
更改路径:
#在~/.bash_profile 或 ~/.bashrc加入
export PATH=$PATH:
/usr/local/cmake/bin:
/usr/local/gcc/bin:
/usr/local/openssl/bin:
/usr/local/bison/bin:
/usr/local/ncurses/bin:
/usr/local/git/bin:
使动态库正常工作:
ldconfig
如果权限不足,请添加 sudo。
3.3 下载 MySQL 社区版
官方网站在这里。
我不知道第一个和第二个有什么区别,因为作者都尝试过,可以成功编译安装。事实上,它说的是带有助推头的一秒钟,它似乎没有多大用处。这是第一个。
校准(可选):
md5sum mysql-boost-8.0.20.tar.gz
3.4 生成生成文件
sudo cmake ..
-DDEFAULT_CHARSET=utf8mb4
-DDEFAULT_COLLATION=utf8mb4_unicode_ci #
-DENABLED_LOCAL_INFILE=ON
-DWITH_SSL=system
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/server
-DMYSQL_DATADIR=/usr/local/mysql/data
-DMYSQL_TCP_PORT=3306
-DDOWNLOAD_BOOST=0
-DWITH_BOOST=~/Desktop/boost
在工作中,很多时候因为需要使用新的技术方案,需要更新版本的内核来支持新功能,而内核
CentOS 系统自带的版本一般较旧,因此我们需要升级系统的内核并安装新版本的内核。这里以 CentOS7 系统为例,编译安装最新版本内核的过程总结如下:
最新版本的 Linux 内核可通过网站获得
1. 下载内核源码包的最新稳定版到 /usr/local/src,解压到当前目录
2. 解压内核源码包
3. 从 /boot 目录复制现有版本的内核编译配置配置文件,放在新的内核源码提取目录下,重命名为 .config 的隐藏文件
[root@localhostsrc]#cdlinux-5.2.11
[root@localhostlinux-5.2.11]#cp/boot/config-3.10.0-957.el7.x86_64./.config
复制 的配置文件
原始内核从 boot 目录主要是为了方便,这个文件存储了安装系统时内核安装的模块配置信息(否则需要再次自动指定每个模块的编译配置)。
4. 安装依赖包
安装开发工具包组
[root@localhostlinux-5.2.11]#yum-ygroupinstall“开发工具”
安装 ncurse-devel 包(makemenuconfig 文本界面窗口依赖包)。
[root@localhostlinux-5.2.11]#yum-yinstallncurses-devel
5. 运行makemenuconfig,打开文本界面的编译选项菜单窗口,调整内核加载的模块的编译选项,如更改编译后的内核名称、添加系统之前缺少的模块等。
更改内核名称:
Generalsetup--->localversion-appendtokernelrelease
此处将内核名称更改为 5.2.11-001.el7.x86_64
新增NTFS文件系统支持模块:
文件系统--->DOS/FAT/NTFilesystems--->NTFSfilesystemsupport
建议选择编译为模块(M选项)。(* 符号以静态方式编译打包到核心文件中,如果添加更多新模块,核心文件的体积会减少)。
6. 编译内核
[root@localhostlinux-5.2.11]#make-j4# 根据CPU内核数开启多线程编译,提升编译率
漫长的编译过程大约需要 1-2 小时才能启动,具体取决于 CPU 硬件的性能。
如果编译开始提示错误,则可能需要预安装相应的组件包,例如:
[root@localhostlinux-5.2.11]#yum-yinstallopenssh-develelfutils-libelf-develbc
根据相应的错误提示linux编译源码教程,对应的组件包以yum的形式安装,部分组件包在EPEL源中linux编译源码教程,因此需要预配置EPEL源仓库。
7. 编译并安装模块
编译完成后,执行makemodules_install安装内核模块
[root@localhostlinux-5.2.11]#makemodules_install
8. 安装内核核心文件
[root@localhostlinux-5.2.11]#makeinstall
重新启动
如果需要将新版本的内核设置为默认引导内核,则可以使用此命令
grub2-set-default0#0 表示 /boot/grub2/grub.cfg 文件中的第一个菜单项段
重启进入系统后,检查内核版本,已经是最新版本5.2.11
[root@localhost~]#uname-r
5.2.11-001.el7.x86_64
至此,整个内核的编译和安装过程就完成了。
Linux 公社的 RSS 地址:
本文将永久更新链接地址: