bingtuag 发表于 2018-9-27 07:16:21

编译安装MySQL8.0

  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
  cdgcc-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 -chttp://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
  
  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

页: [1]
查看完整版本: 编译安装MySQL8.0