本文共 5197 字,大约阅读时间需要 17 分钟。
环境准备:
mysql 安装包:mysql-5.7.17.tar.gz
软件下载 :http://mirrors.sohu.com/mysql/MySQL-5.7/
yum源:
1 2 3 4 5 6 7 | [root@web_1 ~] # cat /etc/yum.repos.d/server.repo [ local ] name= local baseurl= file : ///mnt/cdrom gpgcheck=0 enabled=1 [root@web_1 ~] # |
系统版本:
1 2 3 4 | [root@web_1 ~] # cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@web_1 ~] # uname -r 3.10.0-327.el7.x86_64 |
安装依赖包:
1 | [root@web_1 mysql-5.7.17] # yum install -y libaio-devel ncurses-devel cmake gcc-c++ bison |
创建用户及解压:
1 2 3 4 | [root@web_1 mysql-5.7.17] # useradd -s /sbin/nologin -M mysql [root@web_1 mysql-5.7.17] #mkdir -p /data/3307/data [root@web_1 mysql-5.7.17] # tar xf mysql-5.7.17.tar.gz [root@web_1 mysql-5.7.17] # cd mysql-5.7.17/ |
编译安装:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@web_1 mysql-5.7.17] # cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.17/ -DMYSQL_DATADIR=/usr/local/mysql-5.7.17/data -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.7.17/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARRTITION_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1-DWITH_DEBUG=0 -- Running cmake version 2.8.11 -- Could NOT find Git (missing: GIT_EXECUTABLE) -- Configuring with MAX_INDEXES = 64U -- SIZEOF_VOIDP 8 -- MySQL 5.7.17 -- Packaging as: mysql-5.7.17-Linux-x86_64 -- Looked for boost /version .hpp in and -- BOOST_INCLUDE_DIR BOOST_INCLUDE_DIR-NOTFOUND -- LOCAL_BOOST_DIR -- LOCAL_BOOST_ZIP -- Could not find (the correct version of) boost. -- MySQL currently requires boost_1_59_0 CMake Error at cmake /boost .cmake:81 (MESSAGE): You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory> This CMake script will look for boost in <directory>. If it is not there, it will download and unpack it ( in that directory) for you. If you are inside a firewall, you may need to use an http proxy: export http_proxy=http: //example .com:80 Call Stack (most recent call first): cmake /boost .cmake:238 (COULD_NOT_FIND_BOOST) CMakeLists.txt:455 (INCLUDE) -- Configuring incomplete, errors occurred! |
编译报错!!!!!
从标出的红色部分可以看出是缺少依赖google一番后 找到解决方案
mysql5.7.5以后都需要 boost
下载地址:
安装boost:
1 2 3 4 | [root@web_1 mysql-5.7.17] # tar -xf boost_1_59_0.tar.gz [root@web_1 mysql-5.7.17] # cd boost_1_59_0/ [root@web_1 mysql-5.7.17] # mkdir /usr/local/boost [root@web_1 mysql-5.7.17] # cp -a ./* /usr/local/boost/ |
再次编译(指定boost路径):
#增加了boost路径 -DWITH_BOOST
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | [root@web_1 mysql-5.7.17] # cmake \ -DCMAKE_INSTALL_PREFIX= /usr/local/mysql \ -DMYSQL_DATADIR= /data/3307/data \ #自定义目录 -DSYSCONFDIR= /data/3307 \ #自定义目录 -DMYSQL_USER=mysql \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR= /data/3307/mysql .sock \ #自定义目录 -DMYSQL_TCP_PORT=3307 \ #自定义端口 -DENABLED_LOCAL_INFILE=1 \ -DENABLE_DOWNLOADS=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_DEBUG=0 \ -DMYSQL_MAINTAINER_MODE=0 \ -DWITH_SSL:STRING=bundled \ -DWITH_ZLIB:STRING=bundled \ -DWITH_BOOST= /usr/local/boost [root@web_1 mysql-5.7.17] # make && make install |
make过程中报以下错误!!!
1 2 3 4 5 6 7 8 9 | [ 75%] Built target sqlgunitlib [ 75%] Building CXX object unittest /gunit/CMakeFiles/merge_small_tests-t . dir /merge_small_tests .cc.o c++: internal compiler error: Killed (program cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <http: //bugzilla .redhat.com /bugzilla > for instructions. make [2]: *** [unittest /gunit/CMakeFiles/merge_small_tests-t . dir /merge_small_tests .cc.o] Error 4 make [1]: *** [unittest /gunit/CMakeFiles/merge_small_tests-t . dir /all ] Error 2 make : *** [all] Error 2 |
google一番后发现是 内存不够 swap分区也不够
解决方案:
1 2 3 | [root@web_1 ~] # dd if=/dev/zero of=/swapfile bs=1k count=2048000 [root@web_1 ~] # mkswap /swapfile [root@web_1 ~] # swapon /swapfile |
初始化:
1 | [root@web_1 3307] # mysqld --defaults-file=/data/3307/my.cnf --initialize-insecure --user=mysql |
启动服务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [root@web_1 3307] # mysqld_safe --user=mysql & [root@web_1 data] # mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.17-log Source distribution Copyright (c) 2000, 2016, Oracle and /or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and /or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> |
安装完成!