centos6.7编译安装mysql5.7.17
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的更多相关文章
- 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- ...
- CentOS6.7编译安装mysql5.6
可能因为有各种情况,无法通过yum安装mysql,这里记录一下编译安装的简单步骤 使用yum安装一些依赖 yum -y install make gcc-c++ cmake bison-devel ...
- CentOS6.7编译安装mysql5.5(详解编译选项)
注意! mysql5.5之前一般都是用make编译 mysql5.5 -5.6 一般都是用cmake编译 cmake : 跨平台编译器, mysql官方提供的rpm包 mysql-client :提 ...
- CENTOS6.5 编译安装MySQL5.7.14
前言 mysql5.7.14 编译安装在自定义文件路径下 下载安装包 配置安装环境 编译安装 cmake \ -DCMAKE_INSTALL_PREFIX=/data/db5714 \ -DMYSQL ...
- Lamp环境搭建Linux CentOS6.5编译安装mysql5.6
经典web开发组合Lamp环境搭建之mysql安装详解 安装前准备 通过rpm命令检查centos上是否已经安装mysql,然后卸载已经存在的mysql版本 [root@localhost src]# ...
- CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9
一.安装Nginx: 1.解决依赖关系 编译安装nginx需要事先需要安装开发包组"Development Tools"和 "Development Libraries& ...
- 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 ...
- 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. ...
- 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 ...
随机推荐
- MySQL管理命令
1.验证MySQL安装 在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常. 使用 mysqladmin 工具来获取服务器状态: 使用 my ...
- 列存储段消除(ColumnStore Segment Elimination)
列存储索引是好的!对于数据仓库和报表工作量,它们是真正的性能加速器.与聚集列存储结合,你会在常规行存储索引(聚集索引,非聚集索引)上获得巨大的压缩好处.而且创建聚集列存储索引非常简单: CREATE ...
- this的相关介绍与用法
当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是this.因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并 ...
- HDU 3785 寻找大富翁
寻找大富翁 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- CSS3知识点整理(三)----变形与动画
一.CSS3中的变形 1)旋转 rotate() rotate()函数通过指定的角度参数使元素相对原点进行旋转. 它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度. 如果这个值为正值,元 ...
- Android jni 编程1(对基本类型字符串的操作)
最近一直在学安卓的jni,主要参考的是黑马程序员的视频教程,讲的确实不错. 那就自己总结一下吧,算是对学习的复习. 这篇博客也主要参考了这位博主:http://www.cnblogs.com/acti ...
- java中关于转义字符的一个bug
在java中,你可以定义 char c = '\u4f60'; char m = '\u0045'; char e = '\u554a'; 这样的字面量,例如: System.out.println( ...
- shell-3
每天学习一篇:利用跑代码或者空闲思考时间,启动环境时间等闲杂时间: http://blog.csdn.net/junjieguo/article/category/880326/2
- linux下php调试工具xdebug安装配置
xdebug简介 Xdebug是php的一款调试工具,是基于zend的一个扩展,可以用来跟踪,调试和分析PHP程序的运行状况.如变量,函数调试,性能监测,代码覆盖率等 xdebug安装 1.下载xde ...
- mysql数据库封装和 分页查询
1 之前我们学到了php连接mysql数据库的增删改查,中间要多次调用数据库, 而且以后用到的表比较多,上传中如果需要改数据的话会非常麻烦,但是如果 我们把数据库封装,到时就可以很轻松的把改掉一些数据 ...