此次MySQL安装的版本为:MySQL8.0
系统为:centos6.9 64位
一、利用yum仓库安装
wget https://repo.mysql.com//mysql80-community-release-el6-1.noarch.rpm 下载仓库文件的rpm包
rpm -ihv mysql80-community-release-el6-1.noarch.rpm 安装yum仓库包
yum install mysql-community-server -y 用yum安装
初始化:
service mysqld start
grep 'temporary password' /var/log/mysqld.log 查看初始密码
alter user 'root'@'localhost' identified by 'MySQLtest123'; 修改初始密码
二、编译安装
rpm包安装没有什么难度,只要去官网下载rpm包,就可以了。
之所以要用编译安装,主要是为了隐藏版本号。因为各种中间件或多或少都是有一些漏洞的,黑客可以通过扫描你中间件的版本号从而有针对的攻击你的系统
比如用telnet ip 3306,就能看到mysql的版本信息,为了隐藏版本信息,最好还是使用编译安装。
安装前的准备:
yum install -y autoconf automake m4 libtool make cmake bison gcc ncurses-devel libaio glibc-devel.i686 glibc-devel gcc-c++ 安装依赖包
编译安装gcc
MySQL8.0编译安装需要用gcc的版本为 4.8.3以上,如果是centos6,需要编译安装更高版本的gcc,如果是centos7 可以略过这一步:
gcc全版本下载地址:http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/
我这里是编译安装的gcc-6.1.0
wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-6.1.0/gcc-6.1.0.tar.gz
tar xf gcc-6.1.0.tar.gz
cd gcc-6.1.0
# 载编译需要的依赖包:./contrib/download_prerequisites
./configure --prefix=/usr/local/gcc-6.1.0/ --enable-bootstrap --enable-threads=posix --enable-languages=c,c++,objc,obj-c++
make &&make install
用先新安装的高版本gcc替换之前的gcc环境:
ln -s /usr/local/gcc-6.1.0/bin/gcc /usr/bin/gcc
ln -s /usr/local/gcc-6.1.0/bin/g++ /usr/bin/g++
ln -s /usr/local/gcc-6.1.0/bin/c++ /usr/bin/c++
ln -s /usr/local/gcc-6.1.0/bin/gcc /usr/bin/cc 将新版本的gcc软连接到/usr/bin下面使系统能够识别
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s /usr/local/gcc-6.1.0/lib64/libstdc++.so.6.0.18 /usr/lib64/libstdc++.so.6
友情提示:编译gcc耗时非常长
安装boost库:(下载二进制包解压到指定目录即可)
wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz
tar -xf boost_1_66_0.tar.gz
mv boost_1_66_0 /usr/local/boost
编译安装mysql8.0
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.13.tar.gz
tar -xf mysql-8.0.13.tar.gz
cd mysql-8.0.13
修改版本信息:
当切换到源码目录之后,其中有一个VERSION文件保存了mysql的版本信息,
执行cmake:
cmake -DWITH_DEBUG=1 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/var/lib/mysql \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/etc \
-DEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
关于cmake:
网上很多教程都是直接贴上cmake操作命令,但是我觉得还是需要理解这些cmake参数到底是什么意思,这样也好方便自己做一些个性化定制。
cmake各项参数意义,请参见:https://blog.csdn.net/sanbingyutuoniao123/article/details/74544634
执行完cmake之后进行编译安装:make && make install
提供新的服务脚本:
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
创建pid文件目录:
mkdir /var/run/mysqld
chown -R mysql:mysql /var/run/mysqld
将mysql的二进制文件,导入环境变量:
echo export PATH=\$PATH:/usr/local/mysql/bin >> /etc/profile
. /etc/profile
初始化数据库:
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
service mysqld start 启动数据库
grep 'temporary password' /var/log/mysqld.log 查看初始密码
根据初始密码进入数据库并修改root用户的密码:
alter user 'root'@'localhost' identified by 'Mysql^123321$';
至此mysql8.0安装完毕!