Centos 7环境MySql8.0.28源码安装

  • 环境信息
  • 升级gcc
  • 升级cmake
  • 安装MySQL

环境信息

操作系统:CentOS Linux release 7.9.2009 (Core)
配置:内存4g,硬盘60g,cpu4核
gcc:7.5.0版本
cmake:3.15.5版本
MySQL:8.0.28版本

升级gcc

根据MySQL官网的资料:https://dev.mysql.com/doc/refman/8.0/en/source-installation-prerequisites.html
从MySQL 8.0.27开始,MySQL 8.0源代码允许使用C++17功能。若要在所有受支持的平台上启用良好的 C++17 支持级别,Linux环境gcc版本最好在7.1以上,所以先升级gcc版本,选择gcc7.5.0版本。

1,查看自带版本

gcc -v

如下图所示:

2,下载gcc7.5.0tar包
下载网址:http://ftp.gnu.org/gnu/gcc/,有各种版本的gcc。

3,上传gcc-7.5.0.tar.xz到服务器,目录自定义
4,解压gcc-7.5.0.tar.xz

xz -d gcc-7.5.0.tar.xz
tar -xvf gcc-7.5.0.tar

5,进入解压目录gcc-7.5.0/,自动下载依赖

cd gcc-7.5.0
./contrib/download_prerequisites

6,建立文件夹build,并进入配置,生成Makefile文件

mkdir build
cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

7,编译

make

8,安装

make install

9,链接

rm -rf /usr/bin/gcc
rm -rf /usr/bin/g++
rm -rf /usr/lib64/libstdc++.so.6
sudo ln -sf /usr/local/bin/gcc /usr/bin/gcc
sudo ln -sf /usr/local/bin/g++ /usr/bin/g++
sudo ln -sf /usr/local/include/c++/7.5.0 /usr/include/c++/7.5.0
sudo ln -sf /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6

10,重启,再次查看gcc版本

reboot
gcc -v

如下图所示:

升级cmake

1,查看现有版本

cmake -version

如下图所示:

2,下载
登录https://cmake.org/files/下载cmake-3.15.5-Linux-x86_64.tar.gz
3,将包上传到服务器,目录自定义
4,解压cmake-3.15.5-Linux-x86_64.tar.gz

tar -xvf cmake-3.15.5-Linux-x86_64.tar.gz

5,建立软连接

rm -rf /usr/bin/cmake
ln -s /opt/software/cmake-3.15.5-Linux-x86_64/bin/cmake /usr/bin/cmake

6,再次查看cmake版本

cmake -version

如下图所示:

安装MySQL

1,MySQL官网下载源码包
地址:https://downloads.mysql.com/archives/community/

由于MySQL用到boost库,所以选择boost版本,也可以自行安装。

2,将mysql-boost-8.0.28.tar.gz上传到服务器,解压,目录自定义

tar -xvf mysql-boost-8.0.28.tar.gz

3,进入目录mysql-8.0.28,创建build文件夹

cd mysql-8.0.28
mkdir build

4,进入build文件夹,创建两个脚本文件cmake.sh make.sh

touch cmake.sh make.sh
chmod 755 cmake.sh make.sh

cmake.sh文件内容如下:

cmake ../ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DWITH_BOOST=/opt/software/mysql-8.0.28/boost/boost_1_73_0 \
-DWITH_DEBUG=ON \
-DCMAKE_C_FLAGS="-Wno-error" \
-DCMAKE_CXX_FLAGS="-Wno-error"\
-DCMAKE_CXX_COMPILER=/usr/local/bin/g++ \
-DCMAKE_C_COMPILER=/usr/local/bin/gcc

详细配置信息可以参考官网文档:https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html
该脚本可以不用写,直接执行命令,我是为了重复使用才用脚本形式。
make.sh文件内容如下:

date
./cmake.sh
date
make
date

由于编译时间较长,这个主要用来记录下编译时间。

5,编译

./make.sh

如果报如下错误:

则是gcc的路径不对,在上述cmake.sh中配置gcc正确的路径。
如果报如下错误:
则在源码中找到编译参数-Werror将其删除,再重新编译。
我修改了maintainer.cmake文件179和180行,如下图所示:

我这编译花了一个半小时,仅供参考。

6,安装

make install

7,创建用户和组

groupadd mysql
useradd -g mysql mysql

8,创建文件及授权

mkdir /usr/local/mysql/data
touch /usr/local/mysql/mysql.log
chown -R mysql:mysql usr/local/mysql

9,初始化数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

注意:初始化完成会生成一个密码,后面会用到。

10,修改/etc/my.cnf文件

vim /etc/my.cnf

配置信息如下:

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
port=3306
symbolic-links=0
character-set-server=utf8
[mysqld_safe]
log-error=/usr/local/mysql/mysql.log
pid-file=/var/log/mysql/mysql.pid
[client]
socket=/usr/local/mysql/mysql.sock
port=3306
default-character-set=utf8

11,配置mysql.server

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server

配置信息如下:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

12,启动mysql服务

/etc/init.d/mysql.server start

13,登录数据库

/usr/local/mysql/bin/mysql -u root -p

输入上述第5步生成的密码。

14,错误解决
如果报下述错误:

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.

重启mysql服务,再重新登录

/etc/init.d/mysql.server restart

如果报下述错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

先修改文件/etc/my.cnf,在mysqld添加以下内容

skip-grant-tables

再次重启mysql服务,此次是以空密码方式登录数据库

/usr/local/mysql/bin/mysql -u root -p

输入密码的时候直接enter,即可登录,然后修改密码

flush privileges;
alter user 'root'@'localhost' identified with mysql_native_password by '自定义密码';

将/etc/my.cnf修改回去,再重启mysql服务,再次登录数据库即可。

Centos 7环境MySql8.0.28源码安装相关推荐

  1. Windows10编译MySQL8.0.28源码

    Windows10编译MySQL8.0.28源码 版本信息 软件下载与安装 源码编译 版本信息 操作系统:windows10 x64 Visual Studio版本:Visual Studio2022 ...

  2. MySQL-8.0.12源码安装实例

    1.通过官网下载对应的版本后,通过FTP上传至云服务器的/usr/local/src 目录 2.解压缩文件 [root@JSH-01 src]# ls mysql-boost-8.0.12.tar.g ...

  3. mysql5.6.28安装_mysql5.6.28源码安装

    众所周知,mysql5.5版本之前都是通过./configure进行编译环境检查,mysql5.5之后用的是cmake(包括5.5) 安装前的准备工作: [root@localhost ~]#wget ...

  4. ZABIX5.0.7源码安装详细过程

    ZABIX5.0.7源码安装详细过程 Zabbix5.0源码安装文档 一:Linux初始设置 关闭selinux vi /etc/selinux/config SELINUX=disabled 关闭网 ...

  5. 在 CentOS 7.0 上源码安装 Xen 4.5

    上周 CentOS 7.0 正式版发布了,Xen4CentOS 项目还没来得及更新支持 CentOS 7.0,所以目前要在 CentOS 7.0 上玩 Xen 的唯一办法只有编译源代码了.貌似这次 C ...

  6. centos7源码安装mysql8.0_CentOS7下源码安装MySQL 8.x

    会选择使用源码安装MySQL,想必对MySQL及其他的安装方式已经有了一定的了解,这里就不对周边信息进行过多赘述了,直接开始吧. 编译MySQL比较消耗内存,如果机器内存较小,可能会在编译期间出现内存 ...

  7. 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录

    CentOS 6.6 64bit上默认的vim版本是7.2 minimal,通过下面的命令查看 yum list installed | grep vim 我打算将其卸载并重新安装官网最新版vim 7 ...

  8. rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装

    MySQL 5.6开始,需要使用g++进行编译. cmake  :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. bison  :MySQL语法解析器需要使用bis ...

  9. .net framework 4.0安装_R4.0的源码安装——以mac为例

    装了一堆东西回来,已经忘了最初要做的是啥. 太长不看版 其实就是缺什么安装什么.每个人情况可能都不太一样.对于我的mac上,如下: configure之前需要安装: gcc xz pcre2 安装方法 ...

  10. 在CentOS 6.9 x86_64上从源码安装xz命令的方法

    xz官网 https://tukaani.org/xz/ 下载最新版本的源码包 cd ~ wget https://tukaani.org/xz/xz-5.2.3.tar.gz tar zxvf xz ...

最新文章

  1. [翻译]震荡波蠕虫技术分析(振荡波蠕虫技术分析)
  2. 添加序号列(SQL Server)
  3. resin如何部署java项目_resin项目换成tomcat部署的两种方式
  4. linux中quota信息查看,Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令...
  5. NOIP 2014 无线网络发射器选址
  6. 【集合论】容斥原理 ( 包含排斥原理 | 示例 )
  7. ipython的安装和使用过程_数据分析之一:IPython安装及使用
  8. 定制Linux系统安装盘,syslinux定制系统启动盘
  9. 隔行插入行——《超级处理器》应用
  10. canvas教程17-合成
  11. python爬取百度天气接口【实战记录】
  12. JavaScript 运算符与逻辑分支
  13. 精尽 Netty 原理与源码专栏( 已经完成 61+ 篇,预计总共 70+ 篇 )
  14. 写给成为高手之路上的朋友们
  15. 用python建立三元一次方程组的解法_三元一次方程组的解法及运用
  16. Patching OIM 11.1.1.5.0 to 11.1.1.5.3
  17. oracle 1555错误,日志ORA-1555错误解决
  18. PyTorch faster_rcnn之一源码解读二 model_util
  19. 关闭Hyper-V,解决ENSP中AR启动失败错误代码40
  20. MFS详解(二)——MFS原理和架构

热门文章

  1. 人工智能--学术会议排名
  2. 怎么接微信公众号人工服务器,怎么设置微信公众号接入人工客服?
  3. 关于Microsoft office深色模式设置
  4. python遍历二维秋天_只要一杯秋天的奶茶,就能学会Python数值分析(1)
  5. 短视频去水印威信小程序源码下载,内附去水印解析接口
  6. 不同系统下的shell的不同_案例分析 | 不同安装角度下平板集热器阳台壁挂式太阳能热水系统性能分析...
  7. 磁盘空间的三种分配方式
  8. 散列表--数据结构与算法之美--CH18、CH19、CH20
  9. 单片机_第1章 单片机基础知识概述
  10. videojs播放器插件使用详解