Centos 7环境MySql8.0.28源码安装
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源码安装相关推荐
- Windows10编译MySQL8.0.28源码
Windows10编译MySQL8.0.28源码 版本信息 软件下载与安装 源码编译 版本信息 操作系统:windows10 x64 Visual Studio版本:Visual Studio2022 ...
- MySQL-8.0.12源码安装实例
1.通过官网下载对应的版本后,通过FTP上传至云服务器的/usr/local/src 目录 2.解压缩文件 [root@JSH-01 src]# ls mysql-boost-8.0.12.tar.g ...
- mysql5.6.28安装_mysql5.6.28源码安装
众所周知,mysql5.5版本之前都是通过./configure进行编译环境检查,mysql5.5之后用的是cmake(包括5.5) 安装前的准备工作: [root@localhost ~]#wget ...
- ZABIX5.0.7源码安装详细过程
ZABIX5.0.7源码安装详细过程 Zabbix5.0源码安装文档 一:Linux初始设置 关闭selinux vi /etc/selinux/config SELINUX=disabled 关闭网 ...
- 在 CentOS 7.0 上源码安装 Xen 4.5
上周 CentOS 7.0 正式版发布了,Xen4CentOS 项目还没来得及更新支持 CentOS 7.0,所以目前要在 CentOS 7.0 上玩 Xen 的唯一办法只有编译源代码了.貌似这次 C ...
- centos7源码安装mysql8.0_CentOS7下源码安装MySQL 8.x
会选择使用源码安装MySQL,想必对MySQL及其他的安装方式已经有了一定的了解,这里就不对周边信息进行过多赘述了,直接开始吧. 编译MySQL比较消耗内存,如果机器内存较小,可能会在编译期间出现内存 ...
- 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录
CentOS 6.6 64bit上默认的vim版本是7.2 minimal,通过下面的命令查看 yum list installed | grep vim 我打算将其卸载并重新安装官网最新版vim 7 ...
- rad linux下安装mysql_Linux(CentOS或RadHat)下MySQL源码安装
MySQL 5.6开始,需要使用g++进行编译. cmake :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本. bison :MySQL语法解析器需要使用bis ...
- .net framework 4.0安装_R4.0的源码安装——以mac为例
装了一堆东西回来,已经忘了最初要做的是啥. 太长不看版 其实就是缺什么安装什么.每个人情况可能都不太一样.对于我的mac上,如下: configure之前需要安装: gcc xz pcre2 安装方法 ...
- 在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 ...
最新文章
- [翻译]震荡波蠕虫技术分析(振荡波蠕虫技术分析)
- 添加序号列(SQL Server)
- resin如何部署java项目_resin项目换成tomcat部署的两种方式
- linux中quota信息查看,Linux quota命令参数及用法详解---Linux磁盘配额限制设置和查看命令...
- NOIP 2014	无线网络发射器选址
- 【集合论】容斥原理 ( 包含排斥原理 | 示例 )
- ipython的安装和使用过程_数据分析之一:IPython安装及使用
- 定制Linux系统安装盘,syslinux定制系统启动盘
- 隔行插入行——《超级处理器》应用
- canvas教程17-合成
- python爬取百度天气接口【实战记录】
- JavaScript 运算符与逻辑分支
- 精尽 Netty 原理与源码专栏( 已经完成 61+ 篇,预计总共 70+ 篇 )
- 写给成为高手之路上的朋友们
- 用python建立三元一次方程组的解法_三元一次方程组的解法及运用
- Patching OIM 11.1.1.5.0 to 11.1.1.5.3
- oracle 1555错误,日志ORA-1555错误解决
- PyTorch faster_rcnn之一源码解读二 model_util
- 关闭Hyper-V,解决ENSP中AR启动失败错误代码40
- MFS详解(二)——MFS原理和架构
热门文章
- 人工智能--学术会议排名
- 怎么接微信公众号人工服务器,怎么设置微信公众号接入人工客服?
- 关于Microsoft office深色模式设置
- python遍历二维秋天_只要一杯秋天的奶茶,就能学会Python数值分析(1)
- 短视频去水印威信小程序源码下载,内附去水印解析接口
- 不同系统下的shell的不同_案例分析 | 不同安装角度下平板集热器阳台壁挂式太阳能热水系统性能分析...
- 磁盘空间的三种分配方式
- 散列表--数据结构与算法之美--CH18、CH19、CH20
- 单片机_第1章 单片机基础知识概述
- videojs播放器插件使用详解