• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    源码编译安装MySQL8.0.20的详细教程

    在上篇文章给大家介绍了:

    MySQL8.0.20安装教程及其安装问题详细教程  https://www.jb51.net/article/186202.htm

    mysql8.0.20下载安装及遇到的问题(图文详解)  https://www.jb51.net/article/186208.htm

    CentOS7安装Mysql8.0.20步骤:

    https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-20.html

    1 概述

    本文章主要讲述了如何从源码编译安装MySQL社区版8.0.20,首先会介绍一些编译安装的相关知识,然后开始编译安装

    2 源码编译安装的相关知识

    2.1 make与configure

    make是一个编译的命令,会在当前的目录下寻找Makefile这个文件,Makefile文件记录了源代码如何编译的详细信息。而configure是由软件开发商编写的一个检测程序检测用户的开发环境,检测完毕后生成Makefile文件。通常,configure会检测如下内容:

    2.2 Tarball文件

    Tarball文件其实就是将源代码以tar打后压缩的文件。通常使用gzip进行压缩,一般扩展名为.tar.gz或.tgz,不过由于bzip2以及xz等技术压缩效果比gzip好,因此文件名也会变成扩展名也会变成.tar.bz2或.tar.xz之类的。通常一个Tarball文件有:

    2.3 源码编译安装相关组件

    2.3.1 编译器

    需要有编译器才能进行编译操作,通常使用的是gcc。

    2.3.2 make+autoconfig

    以Tarball形式发布的软件,为了简化编译流程,通常需要make来根据目标文件文件的依赖性进行编译,但是由于make需要Makefile,因此需要autoconfig生成Makefile。

    2.3.3 函数库

    需要内核提供的库以及相关的include文件。

    2.4 静态库与动态库

    函数库分为动态库与静态库两种类型,绝大部分放在/lib与/lib64中。

    2.4.1 静态库

    扩展名为.a,编译时会直接整合到执行程序中,所以利用静态库生成的文件会比较大一些,编译后的可执行文件可以直接运行,无需依赖外部函数库。另外升级难度较大,因为是直接整合进程序中,升级了静态库的话需要重新编译。

    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

    RedHat8.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

    RedHat7.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 安装make

    没有编译器的情况下无法编译安装,使用软件包安装即可,笔者的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 下载boost

    官网戳这里。
    需要的版本为1.70.0。目前最新的版本为1.73.0,理论上来说更新的版本应该可以,这里下载的是1.70.0。如果不手动下载boost库的话可以在使用cmake生成Makefile时设置DDOWNLOAD_BOOST为1进行下载。

    下载后解压既可。

    tar -xvf boost_1_70_0.tar.bz2

    3.2.6 安装ncurses

    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 安装bison

    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 后续处理

    修改PATH:

    #在~/.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社区版

    官网这里。

    这里不知道第一个与第二个有什么区别,因为笔者两个都试过都能编译安装成功。虽然上面写着第二个带Boost头,但是貌似没什么用。这里用的是第一个。
    校验(可选):

    md5sum mysql-boost-8.0.20.tar.gz

    3.4 生成Makefile

    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

    其他更多参数请使用

    sudo cmake .. -LH

    查看。

    3.5 编译与安装

    sudo make

    sudo make -j n

    笔者试过了make -j 6,失败,无奈换成了make。
    make的速度和make -j还是很大差距的。
    编译好之后,建议测试一下:

    make test

    然后安装:

    sudo make install

    3.6 后续配置

    3.6.1 用户组与用户

    新建用户组与用户,同时修改用户数据目录权限:

    sudo groupadd mysql
    sudo useradd -r -g mysql -s /bin/false mysql
    sudo chown mysql:mysql /usr/local/mysql/data
    sudo chmod 750 /usr/local/mysql/data

    数据目录根据需要修改,若后面出现不可写错误请把权限改为777。

    3.6.2 配置文件

    配置文件为my.cnf,可以放在

    /etc/
    /etc/mysql/
    安装目录/etc/
    ~/

    下,读取顺序从上到下。笔者安装后默认在/etc/mysql/my.cnf,这个是全局配置,~/.my.cnf是用户特定配置,这里直接修改/etc/mysql/my.cnf:

    [client-server]
    
    # Import all .cnf files from configuration directory
    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mariadb.conf.d/
    
    [mysqld]
    port=3306
    basedir=/usr/local/mysql/server
    datadir=/usr/local/mysql/data
    character-set-server=utf8mb4
    [mysql]
    default-character-set=utf8mb4
    [client]
    port=3306
    default-character-set=utf8mb4

    其中[mysqld]下面是新添加的字段,数据目录自行修改。
    建议字符集改为utf8mb4,因为utf8在MySQL中指的是utf8mb3,支持的utf8编码最大字符长度为3字节,如果遇到4字节的宽字符就会插入异常。三字节的utf8最大能编码的Unicode字符为0xffffff,也就是基本多文种平面,Emoji和很多不常用的汉字都不能存储。而utf8mb4是5.5.3之后才支持的,为了兼容性考虑应该统一使用utf8mb4。

    3.7 初始化

    修改环境变量:

    #.bashrc或.bash_profile加上
    export PATH=$PATH:/usr/local/mysql/server/bin

    使用

    mysqld --initialize --user=mysql

    mysqld --initialize-insecure --user=mysql

    然后开启ssl与rsa支持(可选):

    mysql_ssl_rsa_setup

    最后开启服务:

    mysqld_safe --user=mysql 

    3.8 修改密码

    使用root登录,如果使用insecure初始化:

    mysql -u --skip-password

    使用initialize初始化:

    mysql -u root -p

    输入初始化出现的密码即可。
    然后修改密码:

    alter user root@localhost identified by 'xxx';

    3.9 测试

    使用自带的mysqlshow与mysqladmin:

    mysqladmin -u root -p versionmysqlshow -u root -p

    3.10 收尾工作

    3.10.1 别名

    alias md='mysqld -u mysql '

    这样输入md就可以启动MySQL服务了。

    3.10.2 安装Mycli

    Mycli是一个MySQL命令行客户端工具,具有自动补全和语法高亮的功能。
    使用pip安装即可,python2请使用

    pip install mycli

    python3请使用

    pip3 install mycli

    找不到pip请安装:

    sudo apt install python-pip#python2
    sudo apt install python3-pip

    然后使用mycli进入数据库:

    mycli -u root

    愉快地使用补全吧!

    4 参考

    1.Linux下安装mysql的方式(yum和源码编译两种方式)
    2.utf8 与 utf8mb4,utf8mb4_unicode_ci 与 utf8mb4_general_ci
    3.MySQL-官网安装文档

    总结

    到此这篇关于源码编译安装MySQL8.0.20的详细教程的文章就介绍到这了,更多相关源码编译安装MySQL8.0.20内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 解析MySQL8.0新特性——事务性数据字典与原子DDL
    • 详解MySQL8.0​ 字典表增强
    • mysql8.0.21下载安装详细教程
    • MySQL8.0.21.0社区版安装教程(图文详解)
    • 阿里云centos7中安装MySQL8.0.13的方法步骤
    • mysql8.0.20安装与连接navicat的方法及注意事项
    • CentOS7版本安装Mysql8.0.20版本数据库的详细教程
    • mysql8.0.20下载安装及遇到的问题(图文详解)
    • MySQL8.0.20安装教程及其安装问题详细教程
    • CentOS8部署LNMP环境之编译安装mysql8.0.29的教程详解
    • MySQL8.0 如何快速加列
    上一篇:CentOS7版本安装Mysql8.0.20版本数据库的详细教程
    下一篇:MySQL 编码utf8 与 utf8mb4 utf8mb4_unicode_ci 与 utf8mb4_general_ci
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    源码编译安装MySQL8.0.20的详细教程 源码,编译,安装,MySQL8.0.20,