MySQL 8.0 正式版 8.0.11 已发布, 官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍, 还带来了大量的改进和更快的性能!
注意: 从 MySQL 5.7 升级到 MySQL 8.0 仅支持通过使用 in-place 方式进行升级, 并且不支持从 MySQL 8.0 降级到 MySQL 5.7
(或从某个 MySQL 8.0 版本降级到任意一个更早的 MySQL 8.0 版本). 唯一受支持的替代方案是在升级之前对数据进行备份.
操作系统说明: CentOS 6.4
数据库版本: MySQL 8.0.0
一. 环境准备
- yum install ncurses-devel -y
- yum install libaio -y
- yum install glibc-devel.i686 glibc-devel -y
- yum install gcc gcc-c++ -y
另外, MySQL8.0 需要用 gcc 的版本为 4.8 以上, 而 centos 6.4 通过 yum 只能安装到 4.4.7, 所以在安装 mysql8.0 之前需要手动安装更高版本的 gcc, 我这里以 gcc-8.8.2 为例:
- wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.2/gcc-4.8.2.tar.gz
- tar xf gcc-4.8.2.tar.gz
- cd gcc-4.8.2
- # 载编译需要的依赖包:./contrib/download_prerequisites
- ./configure --prefix=/usr/local/gcc-4.8.2/ --enable-bootstrap --enable-threads=posix --enable-languages=c,c++,objc,obj-c++
- make &&make install
说明: make 的时间会很长.
安装完后, 还需要将原来的 gcc 环境用新版本的 gcc 替换掉, 否则 mysql 在安装时还是用的原来的 gcc:
- 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
解决如下问题:
接着, 安装 boost 库:
- wget -c http://sourceforge.net/projects/boost/files/boost/1.60.0/boost_1_60_0.tar.bz2 --no-check-certificate
- tar xf boost_1_60_0.tar.bz2\?r\=\&ts\=1479114685\&use_mirror\=ncu
- cd boost_1_60_0
- ./bootstrap.sh
- ./b2 stage threading=multi link=shared
- ./b2 install threading=multi link=shared
二. 安装 mysql8.0
- # 下载和解压 mysql
- wget -c http://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.0-dmr.tar.gz
- tar xf mysql-boost-8.0.0-dmr.tar.gz
- # 编译安装 mysql
- cd mysql-8.0.0-dmr
- 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/
- make
- make install
- # 新增 mysql 用户和组, 并配置 mysql 用户对数据库目录的权限
- groupadd mysql
- useradd -g mysql mysql
- chown mysql.mysql /usr/local/mysql -R
- # 初始化 mysql
- cd /usr/local/mysql
- bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
- bin/mysql_ssl_rsa_setup
- # 配置文件
- cp ./support-files/my-default.cnf /etc/my.cnf
- vim /etc/my.cnf
- [mysqld]
- datadir=/usr/local/mysql/data/
- socket=/var/lib/mysql/mysql.sock
- user=mysql
- # Disabling symbolic-links is recommended to prevent assorted security risks
- symbolic-links=0
- pid-file=/var/run/mysqld/mysqld.pid
- log-error=/var/log/mysqld.log
- # 创建进程文件目录
- mkdir /var/run/mysqld
- chown mysql /var/run/mysqld/ -R
- # 设置环境变量
- echo "export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin">> /etc/profile
- source /etc/profile
- # 设置开机启动脚本
- cd /usr/local/mysql
- cp support-files/mysql.server /etc/init.d/mysql.server
- chkconfig mysql.server on
- service mysql.server start
来源: http://www.linuxidc.com/Linux/2018-04/151983.htm