Linux 6.8 源码安装MySQL8.0
搭建环境说明:
系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago)
内核版本:Linux 2.6.32-642.el6.x86_64
内网环境,无法使用网络yum源
基础环境配置:
关闭防火墙:service iptables stop
设置防火墙开机不启动:chkconfig iptables off
临时修改selinux状态:setenforce 0
永久修改(需重启后生效):sed -i 's/SELINUX=*/SELINUX=disabled/g' /etc/selinux/config
查看selinux状态:getenforce
现在对应对应系统版本iso文件
上传对应的镜像文件到服务器上
创建挂载点:mkdir /iso
将镜像挂载到对应的挂载点:mount -o loop /home/Soft/rhel-server-6.8-x86_64-dvd.iso /iso
配置本地yum源:
vim /etc/yum.repos.d/local.repo
[localrepo]
name = localrepo
baseurl = file:///iso
enabled = 1
gpgcheck = 0
清理和列出可用的yum源
yum clean all
yum repolist
使用本地yum源安装基础环境的包:
yum install ncurses-devel -y
yum install libaio -y
yum install glibc-devel.i686 glibc-devel -y
yum install gcc gcc-c++ -y
yum -y install cmake
=============================================================================================
源码升级安装gcc到4.8以上(以4.8.2为例)
下载对应的源码包,上传到服务器指定的目录
解压,并切换到解压后的gcc目录
tar xf gcc-4.8.2.tar.gz
cd gcc-4.8.2
到此处之后,官方的办法是会让你执行一个脚本,脚本会默认去下载升级安装gcc所需要的包,但是在内网环境下只能手动下载了
将下载好的包上传到gcc-4.8.2目录,并在此目录下执行写好的脚本a.sh
cat a.sh
MPFR=mpfr-3.1.4
GMP=gmp-4.3.2
MPC=mpc-1.0.3
tar xjf $MPFR.tar.bz2 || exit 1
ln -sf $MPFR mpfr || exit 1
tar xjf $GMP.tar.bz2 || exit 1
ln -sf $GMP gmp || exit 1
tar xzf $MPC.tar.gz || exit 1
ln -sf $MPC mpc || exit 1
rm $MPFR.tar.bz2 $GMP.tar.bz2 $MPC.tar.gz || exit 1
脚本执行成功之后就开始预编译了:
./configure --prefix=/usr/local/gcc-4.8.2/ --enable-bootstrap --enable-threads=posix --enable-languages=c,c++,objc,obj-c++
然后是编译和安装
make && make install (注意编译的时间会比较长,一般情况下是30到60分钟,具体情况视服务器的性能而定,切记在编译是不要对服务器做其他操作)
编译安装好之后需要将系统自带的gcc移动到其他目录备份(备份的目的是以防安装GCC失败之后可以回滚),然后将新安装的GCC软连接到对应的库
操作步骤已经写到如下脚本(movegcc.sh),只需执行(bash movegcc.sh)即可
脚本内容如下:
mv /usr/bin/gcc /usr/bin/gcc447
mv /usr/bin/g++ /usr/bin/g++447
mv /usr/bin/c++ /usr/bin/c++447
mv /usr/bin/cc /usr/bin/cc447
ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-4.8.2/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-4.8.2/bin/c++ /usr/bin/c++
ln -s /usr/local/gcc-4.8.2/bin/gcc /usr/bin/cc
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s /usr/local/gcc-4.8.2/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
脚本执行成功之后就可以查看当前使用的gcc版本了 查看的命令:gcc -v
=================================================================================================
gcc升级结束之后,现在需要安装mysql8.0依赖的另一个软件boost,由于是内网环境,所以还是只能自己下载,源码安装了
下载和mysql版本对应的boost包,然后编译安装
解压,切换目录
tar xf boost_1_60_0.tar.bz2
cd boost_1_60_0
执行脚本
./bootstrap.sh (创建引擎)
./b2 stage threading=multi link=shared
./b2 install threading=multi link=shared
==================================================================================================
成功安装安装gcc和boost之后,接下来就是源码安装mysql了
下载好源码包之后上传到服务器指定目录,解压然后切换目录
tar xf mysql-boost-8.0.0-dmr.tar.gz
cd mysql-8.0.0-dmr
使用cmake 创建编译环境
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data/ -DSYSCONFDIR=\etc\mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_BOOST=/tmp/boost_1_60_0/
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 该路径表示你想要将mysql安装在哪个目录,具体情况视服务器的情况处理
-DMYSQL_DATADIR=/usr/local/mysql/data/ 该路径表示你想要将mysql的数据村放在哪个目录,具体情况视服务器的情况处理
-DWITH_BOOST=/tmp/boost_1_60_0/ 该路径表示你安装的boost是存放在哪个目录。在mysql进行编译的时候会去读取这个目录下的文件
编译环境创建好之后,接下来就是编译和安装了
make && make install (编译和安装耗时较长请耐心等候)
成功安装MySQL之后,接下来就是MySQL基础环境配置了
新增mysql用户和组,并配置mysql用户对数据库目录的权限
groupadd mysql 创建用户组
useradd -g mysql mysql 创建用户,并指定用户组
chown mysql.mysql /usr/local/mysql -R 修改安装MySQL的目录的用户和用户组都为mysql
初始化mysql
cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
bin/mysql_ssl_rsa_setup
在进行初始化数据库时,指定initialize参数会默认初始化你存放MySQL数据的数据目录,在初始化时会临时生成一个root登陆本机的密码,注意初始化时数据目录必须为空
否则会报错
Linux 6.8 源码安装MySQL8.0的更多相关文章
- CentOS7.4 源码安装MySQL8.0
MySQL 8 正式版 8.0.11 已发布,官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能! 以下为本人2018.4.23日安装过程的记录.整个过程大 ...
- Linux平台下源码安装mysql多实例数据库
Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...
- CentOS7源码安装Redis5.0.4非关系型数据库
源码安装redis-5.0.4 一. 下载redis 1. 需要连接网络 二. 案例(另一种安装方法) [root@localhost ~]# wget http://download.redis.i ...
- 源码安装 qemu-2.0.0 及其依赖 glib-2.12.12
源码安装qemu-2.0.0 下载源代码并解压 http://wiki.qemu-project.org/download/qemu-2.0.0.tar.bz2 .tar.gz 编译及安装: cd q ...
- CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)
1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...
- ubuntu16.04下源码安装onos1.0.2
由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 L ...
- 【Linux系列】Centos 7安装 Mysql8.0(五)
目的 本文主要介绍以下两点: 一. 如何安装Mysql8.0 二. Navicat连接Mysql 一. 如何安装Mysql8.0 安装Mysql有两种方式: 直接下载官方的源(比较慢) https:/ ...
- linux中的源码安装
前两天自己在笔记本上装了CentOs版本的虚拟机,接着要装Python3,是源码安装的挺费劲,个人总结了一些源码安装的经验,今天在这里给大家分享一下. 1. 首先准备环境,安装必要的编译工具gcc g ...
- Debian系Linux源码安装Redis5.0.6
一,先在官网下载源码包:https://redis.io/download 二,解压源码包,并cd到解压后的目录: 三,执行make MALLOC=libc: 接着cd src[解压的目录里有这个子目 ...
随机推荐
- 阿里云oss c# api 的使用 的使用
API 文档下载地址:http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/attach/32085/cn_zh/1515493045734 ...
- react系列笔记:第二记-中间件
中间件所做的事情就是在action发起后,到reducer之前做扩展,实现的方式是对store的dispatch进行包装 store.dispatch => [middlewales] => ...
- spring cloud 随笔记录(1)-
最近随着微服务的火热,我也开始对我服务进行了解了 毕竟程序员这一行需要及时更新自己的技能,才能更好的生存. 我理解的微服务 项目由多个独立运行的程序组成,每个服务运行在自己的进程中,服务间采用轻量 ...
- JAVA Number与Math类
Number类: 当要用到数字的时候,我们除了使用内置数据类型byte,int,double等来声明,我们还把它声明为一个对象: 所有的包装类(Integer.Long.Byte.Double.Flo ...
- Timer 的学习
Timer 实例化多个对象就会启动多个线程 TimerTask 中 捕获异常为基类Exception,那么出现异常后就继续执行.及时报错 TimerTask中未捕获异常或者捕获异常与程序抛出异常不一致 ...
- linux发布环境初始化脚本
#参数配置 homeDir=$(pwd) tomcatDir=$homeDir/tomcat logDir=$homeDir/tomcat/logs backUpDir=$homeDir/backup ...
- unigui的页面布局使用
(unigui的页面布局还是很强大的,基本什么的排版都能搞好.前面部分为原文章翻译,翻译不一定很准确,就能看吧,后面有使用说明,有什么不明白的欢迎加我QQ(910300653)一起交流学习) 一.布局 ...
- 分布式session个人理解浅谈
在分布式中,用户的session如何处理呢? 服务器中的原生session是无法满足需求的,因为用户的请求有可能随机落入到不同的服务器中,这样的结果将会导致用户的session丢失,传统做法中有解决方 ...
- JavaScript里面的arguments到底是个啥?
类数组对象:arguments 总所周知,js是一门相当灵活的语言.当我们在js中在调用一个函数的时候,我们经常会给这个函数传递一些参数,js把传入到这个函数的全部参数存储在一个叫做arguments ...
- 微信小程序:首页设置方法(开发模式,使用模式)与其他相关设置
小程序开发并不愉快,许多必建的文件不会自动生成,页面之间的跳转没有快捷键,开发者工具显示区域受限……如果谁有对应的解决办法求告知…… 开始的时候每次保存代码,页面都会刷洗重新渲染一次,而且自动跳回首页 ...