CentOS6.5如何编译安装最新MySQL 5.7.11

69次阅读
没有评论

共计 11350 个字符,预计需要花费 29 分钟才能阅读完成。

这篇文章给大家分享的是有关 CentOS6.5 如何编译安装最新 MySQL 5.7.11 的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

安装前工作:
1,从官方网址下载 MySQL5.7.11 源码包,大概 49M
2,安装好 CentOS6.5 64 位操作系统。建议 update 操作系统,以便是此版本最新的
3. yum -y install  gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake  libaio libaio-devel autoconf bzr bison libtool    // 这是个人在安装老版本使用的,相关依赖包

正式安装 MySQL
1. 添加 MySQL 用户和所属组
 groupadd mysql
 useradd -r -g mysql mysql
2. 解压源码包
 tar -zxvf mysql-5.7.11.tar.gz
3. 开始踩 MySQL 的坑
    设置好 make 编译的目录
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \     //MySQL 安装文件目录
-DMYSQL_DATADIR=/mysql/data \ //MySQL 数据文件目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \                      //sock 文件目录
-DDEFAULT_CHARSET=utf8 \                              // 字符集设置
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 

4. 进入到解压后的源码包中 cmake
[root@zhangMySQL5711 mysql-5.7.11]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mysql/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
— Running cmake version 2.8.12.2
— Could NOT find Git (missing:  GIT_EXECUTABLE) 
— Configuring with MAX_INDEXES = 64U
— The C compiler identification is GNU 4.4.7
— The CXX compiler identification is GNU 4.4.7
— Check for working C compiler: /usr/bin/cc
— Check for working C compiler: /usr/bin/cc — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info – done
— Check for working CXX compiler: /usr/bin/c++
— Check for working CXX compiler: /usr/bin/c++ — works
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info – done
— Looking for SHM_HUGETLB
— Looking for SHM_HUGETLB – found
— Looking for sys/types.h
— Looking for sys/types.h – found
— Looking for stdint.h
— Looking for stdint.h – found
— Looking for stddef.h
— Looking for stddef.h – found
— Check size of void *
— Check size of void * – done
— SIZEOF_VOIDP 8
— MySQL 5.7.11
— Packaging as: mysql-5.7.11-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=     // 需要 boost 支持,这一点跟 5.6 版本的不一样
  This CMake script will look for boost in .  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:443 (INCLUDE)
— Configuring incomplete, errors occurred!
See also /root/mysql-5.7.11/CMakeFiles/CMakeOutput.log .

重新按照要求加上 boost 选项,再次 cmake:
[root@zhangMySQL5711 mysql-5.7.11]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mysql/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost
— Running cmake version 2.8.12.2
— Could NOT find Git (missing:  GIT_EXECUTABLE) 
— Configuring with MAX_INDEXES = 64U
— SIZEOF_VOIDP 8
— MySQL 5.7.11
— Packaging as: mysql-5.7.11-Linux-x86_64
— Downloading boost_1_59_0.tar.gz to /usr/local/boost

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

 文件名称:
 文件大小:
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:

— Download failed, error: 28; Timeout was reached      // 实在是受不了这蜗牛的速度,大概 30Kb/s 所以下载失败
CMake Error at cmake/boost.cmake:187 (MESSAGE):
  You can try downloading
  http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz    // 建议复制链接,直接浏览器上,或者迅雷上下载,速度超快
  manually using curl/wget or a similar tool, or increase the value of
  DOWNLOAD_BOOST_TIMEOUT (which is now 600 seconds)
Call Stack (most recent call first):
  CMakeLists.txt:443 (INCLUDE)

下载好 boost 文件,
[root@zhangMySQL5711 boost]# pwd                            // 目录要和 cmake 定义的一致
/usr/local/boost
[root@zhangMySQL5711 boost]# ll
total 81760
drwx—— 8 zabbix   20     4096 Aug 12  2015 boost_1_59_0
-rw-r–r– 1 root   root 83709983 Feb 24 16:42 boost_1_59_0.tar.gz    // 下载好的,解压即可

重新定义 cmake
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mysql/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost/boost_1_59_0

[root@zhangMySQL5711 mysql-5.7.11]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mysql/data \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost/boost_1_59_0
— Running cmake version 2.8.12.2
— Could NOT find Git (missing:  GIT_EXECUTABLE) 
— Configuring with MAX_INDEXES = 64U
— The C compiler identification is GNU 4.4.7
— The CXX compiler identification is GNU 4.4.7
— Check for working C compiler: /usr/bin/cc
— Check for working C compiler: /usr/bin/cc — works
— Detecting C compiler ABI info
— Detecting C compiler ABI info – done
— Check for working CXX compiler: /usr/bin/c++
— Check for working CXX compiler: /usr/bin/c++ — works
…..     // 篇幅太大了,截取开头和结尾
— Performing Test HAVE_NO_UNUSED_TYPEDEFS – Success
— Library mysqlserver depends on OSLIBS -lpthread;m;rt;crypt;dl;aio
— INSTALL mysqlclient.pc lib/pkgconfig
— CMAKE_BUILD_TYPE: RelWithDebInfo
— COMPILE_DEFINITIONS: _GNU_SOURCE;_FILE_OFFSET_BITS=64;HAVE_CONFIG_H
— CMAKE_C_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement
— CMAKE_CXX_FLAGS:  -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter
— CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
— CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
— Configuring done
— Generating done
— Build files have been written to: /root/mysql-5.7.11
到这里 cmake 完成,比较顺利

5. make 操作
[root@zhangMySQL5711 mysql-5.7.11]# make    // 漫长的过程 主要看机器的配置,我的虚拟机给了 1300M,所以大概用了 25 分钟
Scanning dependencies of target INFO_BIN
[ 0%] Built target INFO_BIN
Scanning dependencies of target INFO_SRC
[ 0%] Built target INFO_SRC
Scanning dependencies of target abi_check
[ 0%] Built target abi_check
Scanning dependencies of target zlib
[ 0%] Building C object zlib/CMakeFiles/zlib.dir/adler32.c.o
[ 0%] Building C object zlib/CMakeFiles/zlib.dir/compress.c.o
[ 0%] Building C object zlib/CMakeFiles/zlib.dir/crc32.c.o
[ 0%] Building C object zlib/CMakeFiles/zlib.dir/deflate.c.o
[ 0%] Building C object zlib/CMakeFiles/zlib.dir/gzio.c.o
….. ….. …..
Linking CXX executable mysql_embedded
[100%] Built target mysql_embedded
Scanning dependencies of target mysqltest_embedded
[100%] Building CXX object libmysqld/examples/CMakeFiles/mysqltest_embedded.dir/__/__/client/mysqltest.cc.o
Linking CXX executable mysqltest_embedded
[100%] Built target mysqltest_embedded
Scanning dependencies of target my_safe_process
[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o
Linking CXX executable my_safe_process
[100%] Built target my_safe_process
[root@zhangMySQL5711 mysql-5.7.11]#

注意:
mysql 5.6.19 版本编译后的文件包约 2G   // 笔者一直使用的是 5.6.19 及以上版本
MySQL5.7.11 编译安装对磁盘的需求也比以往的版本多很多,make 之后的  mysql-5.7.11 文件夹约 4.8G
开始编译前:
[root@zhangMySQL5711 boost]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  4.3G  5.3G  45% /
tmpfs                 634M     0  634M   0% /dev/shm
/dev/sda1             477M  112M  340M  25% /boot
编译完成后:
[root@zhangMySQL5711 ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       11G  9.1G  427M  96% /
tmpfs                 634M     0  634M   0% /dev/shm
/dev/sda1             477M  112M  340M  25% /boot
/dev/sdb1             5.8G   12M  5.5G   1% /mysql

此时如果执行 make install 会因为磁盘不足,导致缺失重要的文件,笔者,尝试过几次,均失败。最后的报错如下:
— Installing: /usr/local/mysql/bin/mysql_embedded
CMake Error at libmysqld/examples/cmake_install.cmake:42 (FILE):
  file INSTALL cannot copy file
  /root/mysql-5.7.11/libmysqld/examples/mysql_embedded to
  /usr/local/mysql/bin/mysql_embedded .
Call Stack (most recent call first):
  cmake_install.cmake:116 (INCLUDE)
make: *** [install] Error 1
[root@zhangMySQL5711 mysql-5.7.11]# 

并且 5.7.11 的安装文件也比以往略大
5.6.19  —- 1.1G
5.7.11  —- 1.9G 
所以建议大家尽量给多一点空间

6. make install  安装:
[root@zhangMySQL5711 mysql-5.7.11]# make install 
……..
— Installing: /usr/local/mysql/mysql-test/./lib/mtr_misc.pl
— Up-to-date: /usr/local/mysql/mysql-test/mtr
— Up-to-date: /usr/local/mysql/mysql-test/mysql-test-run
— Installing: /usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
— Up-to-date: /usr/local/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
— Installing: /usr/local/mysql/mysql-test/lib/My/SafeProcess/Base.pm
— Installing: /usr/local/mysql/support-files/my-default.cnf
— Installing: /usr/local/mysql/support-files/mysqld_multi.server
— Installing: /usr/local/mysql/support-files/mysql-log-rotate
— Installing: /usr/local/mysql/support-files/magic
— Installing: /usr/local/mysql/share/aclocal/mysql.m4
— Installing: /usr/local/mysql/support-files/mysql.server
[root@zhangMySQL5711 mysql-5.7.11]# 

7.  初始化 MySQL
[root@zhangMySQL5711 bin]# ./mysqld –initialize   –user=mysql –datadir=/mysql/data –basedir=/usr/local/mysql –socket=/tmp/mysql.sock     // 在 MySQL 5.7.6 版本以前是 bin/mysql_install_db  –user
2016-02-25T04:36:27.941245Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
2016-02-25T04:36:29.363359Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-02-25T04:36:29.529261Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-02-25T04:36:29.615486Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 56a9ad19-db79-11e5-bc10-080027207e2e.
2016-02-25T04:36:29.635578Z 0 [Warning] Gtid table is not ready to be used. Table mysql.gtid_executed cannot be opened.
2016-02-25T04:36:29.645190Z 1 [Note] A temporary password is generated for root@localhost: oej ibtee2r?
[root@zhangMySQL5711 bin]# 

8. 添加 MySQL 服务
[root@zhangMySQL5711 support-files]# cp mysql.server /etc/init.d/mysql

9. 编辑 my.cnf 文件
[root@zhangMySQL5711 support-files]# vi /etc/my.cnf              // 添加下面的,这里为了简洁,省去其他的,都是按照默认的
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/mysql/data
socket=/tmp/mysql.sock

10. 重启 MySQL
[root@zhangMySQL5711 support-files]# /etc/init.d/mysql start
Starting MySQL.. SUCCESS! 

11. 登录 MySQL
[root@zhangMySQL5711 support-files]# cd ../bin/
[root@zhangMySQL5711 bin]# ./mysql -uroot -p               // 第一次登录 MySQL,密码文件在,也可以从 make install 最后的一行看到密码
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.11
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  

12. 修改 root 密码
mysql set password=password(zhangmysql
Query OK, 0 rows affected, 1 warning (0.00 sec)      // 查看 warning 提示

mysql show  warnings;
+———+——+——————————————————————————————————————————————————————-+
| Level   | Code | Message                                            // 下面提示我那种方法以后将会被遗弃                                 |
+———+——+——————————————————————————————————————————————————————-+
| Warning | 1287 | SET PASSWORD = PASSWORD() is deprecated and will be removed in a future release. Please use SET PASSWORD = instead |
+———+——+——————————————————————————————————————————————————————-+
1 row in set (0.00 sec)

感谢各位的阅读!关于“CentOS6.5 如何编译安装最新 MySQL 5.7.11”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计11350字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)