在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
在上篇文章给大家介绍了: MySQL8.0.20安装教程及其安装问题详细教程 https://www.ogeek.net/article/186202.htm mysql8.0.20下载安装及遇到的问题(图文详解) https://www.ogeek.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关闭本页面,避免无数的痛苦。 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 官网戳这里。 下载后解压既可。 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 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]下面是新添加的字段,数据目录自行修改。 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 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和源码编译两种方式) 总结 到此这篇关于源码编译安装MySQL8.0.20的详细教程的文章就介绍到这了,更多相关源码编译安装MySQL8.0.20内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论