centos6.7编译安装mysql5.7.17

2017-03-24

09:57:15

提示:mysql5.7.17和之前5.56以前的版本安装不一样,需要用cmake

另外,看本文档的mysql编译前我说一点,第一次一定要大概的看完整个过程,不能一直跟着文档做,否则后面容易遇到问题。比如编译完会特别占用磁盘空间,万一之前分配的空间不够,那样就会丢失很多重要文件导致失败。

安装前工作:

1,从官方网址下载MySQL5.7.17源码包

http://dev.MySQL.com/downloads/mysql/#downloads     //这里可以下载。下载通用包也可以,本例用的是通用包和boost包

2,安装好CentOS6.7 64位操作系统。

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   //这是个人在安装老版本使用的,相关依赖包

环境:centos6.7

所需的两个包:

boost_1_59_0.tar.gz

mysql-5.7.17.tar.gz

1、    查看是否安装过mysql

[root@Allen ~]# rpm -qa | grep mysql

如果安装了,那就停止MySQL服务并且将其卸载

[root@Allen ~]#service  mysqld   stop

如果是rpm包安装的就用rpm  -e  卸载,如果yum安装就用yum   -y  remove卸载。并且删除安装目录等

正式安装MySQL

2、    添加MySQL用户和所属组(要先查看是否已经存在mysql用户和组)

[root@Allen ~]#cat  /etc/passwd  | grep  mysql          //查看是否已存在mysql用户

[root@Allen ~]#cat   /etc/group  | grep  mysql          //查看是否已存在mysql组

[root@Allen ~]# groupadd mysql          //如果先执行下面的命令会提示没有mysql这个组

[root@Allen ~]# useradd -r -g mysql mysql

3、    创建mysql安装目录和数据目录

[root@Allen home]# mkdir mysql              //创建目录作为MySQL5.7.17安装路径

[root@Allen home]# mkdir data                      //创建目录作为MySQL5.7.17数据路径

4、    修改MySQL目录所有者

[root@Allen support-files]# chown -R mysql:mysql  /home/mysql

5、    解压源码包

我已经提前把两个包放到/home目录下(可以用winscp,也可以用Linux的rz命令,但是需要安装rz的相关包)

[root@Allen ~]# cd /home/

[root@Allen home]# ls                               //把这两个包放到/home目录并且解压

boost_1_59_0  boost_1_59_0.tar.gz  mysql-5.7.17  mysql-5.7.17.tar.gz

[root@Allen home]#tar -zxvf mysql-5.7.11.tar.gz

[root@Allen home]#tar –zxvf boost_1_59_0.tar.gz

[root@Allen home]# cd mysql-5.7.17/               //进入解压完成后的mysql目录

[root@Allen mysql-5.7.17]# ls

BUILD            Docs                 libmysqld    README         unittest

client           Doxyfile-perfschema  libservices  regex          VERSION

cmake            extra                man          scripts        vio

CMakeLists.txt   include              mysql-test   sql            win

cmd-line-utils   INSTALL              mysys        sql-common     zlib

config.h.cmake   libbinlogevents      mysys_ssl    storage

configure.cmake  libbinlogstandalone  packaging    strings

COPYING          libevent             plugin       support-files

dbug             libmysql             rapid        testclients

编译安装:

[root@Allen mysql-5.7.17]# cmake \

> -DCMAKE_INSTALL_PREFIX=/home/mysql \           指定安装路径,如果没有mysql这个目录就要提前新建

> -DMYSQL_DATADIR=/home/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 \                          //下载boost这个包,之前我们下载过了,这里就可以不使用这个参数了,因为mysql5.7.17需要这个包来编译,如果网络差,下载这个是很慢的,还不如提前下载好放到Linux解压

> -DWITH_BOOST=/home/boost_1_59_0                   指定Boost扩展源码路径,这个地方的路径是boost包解压后得到的路径。

1、    这里进行make安装:

[root@Allen mysql-5.7.17]#make            //可以make  && make  install 

过程太多了,这里就复制出来最后完成后的部分命令

[100%] Building CXX object libmysqld/examples/CMakeFiles/mysql_embedded.dir/__/__/client/readline.cc.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@Allen mysql-5.7.17]# echo $?                           //提示0  说明编译成功没问题

0

到这里make完成

2、    make install 安装:

[root@Allen mysql-5.7.17]# make install

……………………                                       //上面部分省略

-- Installing: /home/mysql/support-files/my-default.cnf

-- Installing: /home/mysql/support-files/mysqld_multi.server

-- Installing: /home/mysql/support-files/mysql-log-rotate

-- Installing: /home/mysql/support-files/magic

-- Installing: /home/mysql/share/aclocal/mysql.m4

-- Installing: /home/mysql/support-files/mysql.server

再次确认,返回 0  说明安装成功没有问题

[root@Allen mysql-5.7.17]# echo $?

0

3、    初始化MySQL

切换到安装目录:

[root@Allen mysql-5.7.17]# cd /home/mysql/bin

初始化数据库:

[root@Allen bin]# ./mysqld --initialize --user=mysql --datadir=/home/data/ --basedir=/home/mysql --socket=/tmp/mysql.sock

2017-03-14T23:42:15.896642Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).

2017-03-14T23:42:17.753496Z 0 [Warning] InnoDB: New log files created, LSN=45790

2017-03-14T23:42:18.037850Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2017-03-14T23:42:18.122664Z 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: dc2d9f27-090f-11e7-8a26-000c29e5ba07.

2017-03-14T23:42:18.124749Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.

2017-03-14T23:42:18.127431Z 1 [Note] A temporary password is generated for root@localhost: iv5EnvXxDt,U

// 在MySQL 5.7.6版本以前是 bin/mysql_install_db  --user

注意:MySQL5.7.17版本初始化以后会给root用户一个初始密码

在最后 也就是这里的  root@localhost: iv5EnvXxDt,U

还有一个注意下:我个人遇到,初始化的密码,他随机生成,英文字母O和数字0在Linux挺像的。大小写有时候也会分不清楚。如果可以我们把初始密码复制写到Linux一个.txt文本,然后复制一份到windows下的word上对比一下,然后输入密码登录数据库

4、    添加MySQL服务,拷贝mysql配置文件

[root@Allen bin]# cd /home/mysql                 //切换到安装目录

[root@Allen mysql]# ls

bin  COPYING  docs  include  lib  man  mysql-test  README  share  support-files

 

[root@Allen mysql]# cd support-files/

[root@Allen support-files]# ls

magic  my-default.cnf  mysqld_multi.server  mysql-log-rotate  mysql.server

[root@Allen support-files]# cp  -a  mysql.server /etc/init.d/mysql                 

//-a 可以把原来的属性一起复制过来

 

5、    编辑my.cnf文件

// 添加下面的,这里为了简洁,省去其他的,都是按照默认的

[root@Allen support-files]# vim /etc/my.cnf

[mysqld]

port=3306

basedir=/home/mysql

datadir=/home/data

socket=/tmp/mysql.sock

user=mysql

 

6、    重启MySQL、并设置开机自启

[root@Allen support-files]# service mysql  start

Starting MySQL. SUCCESS!

[root@Allen support-files]#chkconfig   mysql  on  //设置开机自启,要养成一个好习惯

注意:亲测mysql5.7.17 设置服务启动是mysql    而不是mysqld,上面没有打错。可能是因为版本的原因。本人一开始就是编译mysql5.7.17的。

[root@Allen support-files]# ps -ef        //查看是启动

 

这里本人喜欢用service mysql start ,但是之前我本人看到别人用/etc/init.d/mysql start  这个也是可以的。(其实本人对这个研究也不是很透)

 

7、    登录MySQL

[root@Allen ~]#cd /home/mysql/bin

[root@Allen bin]# ./mysql -uroot –p               //小技巧:数据库初始密码是随机生成的,比较复杂。如果是在xshell里面搭建,那就可以复制初始密码,然后保存到一个文件里面。复制了以后,登录数据库,可以查看密码文件然后输入密码。或者因为之前复制了密码,这里可以用按下鼠标中间的滚轮,粘贴密码。然后登录数据库。避免初始密码输入出错

Enter password:                               //我前面说了MySQL5.7.17版本初始化以后会给root用户一个初始密码

在最后 也就是这里的  root@localhost: iv5EnvXxDt,U

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 3

Server version: 5.7.17

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>

 

8、    修改root密码(登录后一定要更改密码,初始密码使用一次就会过期。第二次就无法使用)

mysql> SET PASSWORD = PASSWORD('qwe12345');   //其实这个小写也是可以的,下面有一个例子。

Query OK, 0 rows affected, 1 warning (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)                //养成一个好习惯,他这里提示有1  warning   也就是说有一条警告提示。我们下面就去看一下

mysql> set password=password('12345');    //其实小写也是可以的

 

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)

注意:

mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效

mysql> flush privileges;

mysql> quit;

至此,编译安装结束。

centos6.7编译安装mysql5.7.17的更多相关文章

  1. Centos6.4_X64编译安装php-5.4.17、nginx-1.4.2、mysql-5.6.13

    安装参考: CentOS 6.3编译安装Nginx1.2.2+MySQL5.5.25a+PHP5.4.5 http://www.dedecms.com/knowledge/servers/linux- ...

  2. CentOS6.7编译安装mysql5.6

    可能因为有各种情况,无法通过yum安装mysql,这里记录一下编译安装的简单步骤 使用yum安装一些依赖 yum -y install make gcc-c++ cmake bison-devel  ...

  3. CentOS6.7编译安装mysql5.5(详解编译选项)

    注意!  mysql5.5之前一般都是用make编译 mysql5.5 -5.6 一般都是用cmake编译 cmake : 跨平台编译器, mysql官方提供的rpm包 mysql-client :提 ...

  4. CENTOS6.5 编译安装MySQL5.7.14

    前言 mysql5.7.14 编译安装在自定义文件路径下 下载安装包 配置安装环境 编译安装 cmake \ -DCMAKE_INSTALL_PREFIX=/data/db5714 \ -DMYSQL ...

  5. Lamp环境搭建Linux CentOS6.5编译安装mysql5.6

    经典web开发组合Lamp环境搭建之mysql安装详解 安装前准备 通过rpm命令检查centos上是否已经安装mysql,然后卸载已经存在的mysql版本 [root@localhost src]# ...

  6. CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9

    一.安装Nginx: 1.解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries& ...

  7. CentOS6.3 编译安装LAMP(3):编译安装 MySQL5.5.25

    所需源码包: /usr/local/src/MySQL-5.5.25/cmake-2.8.8.tar.gz /usr/local/src/MySQL-5.5.25/mysql-5.5.25.tar.g ...

  8. CentOS6.3 编译安装LAMP(4):编译安装 PHP5.2.17

    所需源码包: /usr/local/src/PHP-5.2.17/libmcrypt-2.5.8.tar.gz /usr/local/src/PHP-5.2.17/mhash-0.9.9.9.tar. ...

  9. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    [准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...

随机推荐

  1. Picasso 修改缓存路径

    Picasso 是 Square 公司开源的一个非常友好的图片加载框架,使用范围也比较广泛.具体的使用这里就不做介绍了,文章主要讲讲如何修改图片的缓存路径.Picasso默认的缓存路径位于data/d ...

  2. shell脚本,符号

    在shell中常用的特殊符号罗列如下: # ;   ;; . , / \\ 'string'| !   $   ${}   $? $$   $* \"string\"* **   ...

  3. Java List集合特有方法程序用法

    package Collection; /* Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引 | |--ArrayList:底层的数据结构使用的是数组结构 特点 ...

  4. PropertyChangeSupport的使用

    使用目的 当你需要监听对象属性的变化时,可以使用PropertyChangeSupport类来管理监听器,可以在一些关联属性的场合使用. 使用示例,以下为BetaConfig对象添加了管理属性监听器的 ...

  5. 关于H5里的API,上传图片预览功能

    FileReader:读取本地图片文件并显示 写在开头 之前公司要求做一个H5页面,功能是照相和选择相册相片,并且能在屏幕上预览.然后我就傻里吧唧的各种找插件,因为有些插件不适配手机的型号,安卓机基本 ...

  6. PHP Closure创建匿名函数

    Closure 类 用于代表匿名函数的类. 匿名函数(在 PHP 5.3 中被引入)会产生这个类型的对象.在过去,这个类被认为是一个实现细节,但现在可以依赖它做一些事情.自 PHP 5.4 起, 这个 ...

  7. 读书笔记 effctive c++ Item 20 优先使用按const-引用传递(by-reference-to-const)而不是按值传递(by value)

    1. 按值传递参数会有效率问题 默认情况下,C++向函数传入或者从函数传出对象都是按值传递(pass by value)(从C继承过来的典型特性).除非你指定其他方式,函数参数会用实际参数值的拷贝进行 ...

  8. 深入了解Unity中LineRenderer与TrailRenderer

    LineRender和TrailRender是两个好东西,很多Unity拖尾特效都会使用到它们.一些简单的介绍可以参见官方的API文档.在这里探讨一下它们具体的渲染方式,而后给出一些Shader以便更 ...

  9. 【webpack】-- 自动刷新

    前端需要频繁的修改js和样式,且需要根据浏览器的页面效果不断的做调整:而且往往我们的开发目录和本地发布目录不是同一个,修改之后需要发布一下:另外一点就是并不是所有的效果都可以直接双击页面就能看到,我们 ...

  10. 【PHP系列】PHP组件详解

    缘起 枫爷之前做过几年的PHP的研发,大部分都是在开源框架的引导下,编写代码.现在依然,本能的会去让我使用某个PHP框架开发PHP应用,也是因为懒吧,没有好好的去研究研究除了框架之外的一些东西. 今天 ...