系列一:MySQL 部署 - 源码方式部署
1-准备工作
(1)本次部署版本为vmware新装Linux环境!
Linux查看本机发行版本号命令:
(2)在企业生产环境当中,如果采用源码部署mysql的方式,通常下载带boost且后缀名tar.gz压缩包,因为后期可以后期更好的扩展功能。至于版本号~随便选一个8.x的就好。
Boost库
Boost库是为C++语言标准库提供扩展的一些C++程序库的总称,由Boost社区组织开发、维护。Boost库可以与C++标准库完美共同工作,并且为其提供扩展功能
选用阿里云镜像:
https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-boost-8.0.28.tar.gz?spm=a2c6h.25603864.0.0.712470b2KWdCI8
(3)新安装的Linux 需要先下载wget命令 ,才可以从特定url处获取资源
yum install -y wget
yum install -y vim
之后经过解压-预编译-编译-安装 即可部署
2. 正式安装
(1)由于阿里云镜像的连接采用SSL秘钥连接,所以下载的时候加上不检查证书的命令,–no-check-certificate。否则会报错
wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-boost-8.0.28.tar.gz?spm=a2c6h.25603864.0.0.398f70b2cM3pBj --no-check-certificate
(2)由于Linux自带的cmake版本为2.x 无法预编译8.x的源码包,所以需要update。但是此前先要下载一个重要的东西,也是同样是一个软件包扩展源–epel-release
EPEL 是yum的一个软件源,针对红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个软件包下载合集。
yum install epel-release -y
yum install cmake3 -y
做软链接-链接下载之后的cmake3命为cmake
ln -s /usr/bin/cmake3 /usr/bin/cmake
(3)检查cmake3版本,检查版本的时候发现用cmake --version 找不到命令,必须用cmake3 --version来检查版本~ 如图
(4)下载GCC以及一些相关依赖环境,下载gcc的原因是因为解压后的boost包带有的大量的c、c++等程序,需要编译它们就要用到gcc编译工具。鉴于所下载的boost包版本大小,所以当然也需要更高版本的gcc版本,系统默认自带gcc,但是版本太低。如下图
下载centos相关的scl-用于后续升级gcc。
yum -y install centos-release-scl
(5)开始下载!
yum -y install ncurses-devel make perl gcc autoconf automake zlib libxml2 libxml2-devel
libgcrypt libtool bison devtoolset-10-gcc devtoolset-10-gcc-c++ devtoolset-10-binutils
openssl openssl-devel
工具解析:
- ncurses-devel:提供了开发终端用户界面的库和头文件。
- make:用于编译和构建软件的工具。
- perl:一种常用的脚本语言,用于自动化任务和文本处理。
- gcc:GNU编译器集合,用于编译C、C++等程序。
- autoconf:自动生成可移植的源代码配置脚本的工具。
- automake:自动生成Makefile的工具。
- zlib:提供数据压缩和解压缩功能的库和头文件。
- libxml2:提供解析XML文档的库和头文件。
- libxml2-devel:用于开发使用libxml2的应用程序的库和头文件。
- libgcrypt:提供加密和解密功能的库和头文件。
- libtool:自动化库依赖关系的工具。
- bison:用于生成解析器的工具。
- devtoolset-10-gcc:安装GCC 10版本。
- devtoolset-10-gcc-c:安装C编译器。
- devtoolset-10-binutils:提***
- openssl-devel:用于开发使用OpenSSL的应用程序的库和头文件
(6)启动gcc服务
scl enable devtoolset-10 bash
gcc服务仅在当前会话服务有效!第二次重启需要重新开启!
永久启用
echo "source /opt/rh/devtoolset-10/enable" >>/etc/profile
启用后版本
3. 正式编译
我自己下载的mysql-boost-8.0.28 的压缩包是在 /data/ 目录下的 编译必须在下载目录下进行。
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \ //需要创建对应目录
-DMYSQL_UNXI_ADDR=/tmp/mysql.sock \ //sock通讯文件存放地址
-DMYSQL_DATADIR=/data/mysql/ \ //需要创建对应目录
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \ //创建用户mysql
-DMYSQL_TCP_PORT=3306 \ //开放端口3306
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \ //设置字符编码格式
-DDEFAULT_COLLATION=utf8_general_ci \ //设置字符编码格式
-DEXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_DEBUG=0 \
-DWITH_BOOST=./boost/ \
-DFORCE_INSOURCE_BUILD=1
预编译 一般只要对应的目录创建了,命令对了,不会报错。最多给以warning
make -j[x]
此处的 j 指令 指的是cpu x为自己安装Linux时设置的个数,初始设置个数和对应核数的时候一定要根据自己本机(WindowsCPU配置)来,不能太高。一般设置的数字越高编译越快。一般2个小时左右~(没错 ,就是这么慢)
由于本人在编译的时候安装的Linux是带图形化的界面,所以预编译当时出了错-就是和cpu有关的错。有相同情况的只要 编译的时候 别加后面的指令,直接 make 就好了。无非多等点时间
make -j[x] install
安装过程中,一定要给cache存储(swap)留有差不多5G的空间,一些中间过渡文件会很大。
还是和编译的说明一样,图形化界面最好别加 指令。
至此,所有安装程序完毕!