搭建环境说明:mysql
系统版本:Red Hat Enterprise Linux Server release 6.8 (Santiago)linux
内核版本:Linux 2.6.32-642.el6.x86_64c++
内网环境,没法使用网络yum源sql
基础环境配置:数据库
关闭防火墙:service iptables stopbootstrap
设置防火墙开机不启动:chkconfig iptables offvim
临时修改selinux状态:setenforce 0bash
永久修改(需重启后生效):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登录本机的密码,注意初始化时数据目录必须为空
不然会报错