安装编译

下载源码

mysql-5.7.14.tar.gz

解压定义安装变量

cd /usr/local/src
mysql_version="mysql-5.7.14"
tar -zxf "${mysql_version}.tar.gz"
cd ${mysql_version}

配置

cmake \
-DCMAKE_INSTALL_PREFIX:PATH=/usr/local/services/${mysql_version} \
-DMYSQL_DATADIR:PATH=/data/${mysql_version} \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DMYSQL_USER=mysql \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_SSL=yes

报错:

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)

解决:

mysql 依赖boost,添加编译选项:

-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/services/boost

备注:

  1. cmake 生成的临时文件是CMakeCache.txt, 需要删除掉之前配置生成的临时文件 rm CMakeCache.txt
  2. 重新进行配置检查,避免由于,更新系统软件包后,依然使用旧的临时文件,导致配置找不到相关的库。

安装

make
make install

配置启动

以下操作用户均为root

创建用户,数据库初始化

# 创建mysql运行用户
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql # 创建mysql数据目录,并授权
mkdir -p /data/${mysql_version}
chown -R mysql:mysql /usr/local/services/${mysql_version}
chown -R mysql:mysql /data/${mysql_version} # 初始化mysql 系统数据表
# /usr/local/services/${mysql_version}/bin/mysqld \
--initialize \
--user=mysql \
--datadir=/data/${mysql_version} 2016-08-02T14:27:01.183217Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-08-02T14:27:01.183281Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2016-08-02T14:27:01.183289Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2016-08-02T14:27:02.931391Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-08-02T14:27:03.297417Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-08-02T14:27:03.488097Z 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: 2e93cf2d-58bd-11e6-8ed6-94de801a0a56.
2016-08-02T14:27:03.519545Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-08-02T14:27:04.091878Z 0 [Warning] CA certificate ca.pem is self signed.
2016-08-02T14:27:04.223888Z 1 [Note] A temporary password is generated for root@localhost: _bfdDjzhw0ru # 创建配置文件
mkdir -p /usr/local/services/${mysql_version}/etc/
cp /usr/local/services/${mysql_version}/support-files/my-default.cnf /usr/local/services/${mysql_version}/etc/my.cnf /usr/local/services/${mysql_version}/bin/mysql_ssl_rsa_setup # 设置权限
chown -R root /usr/local/services/${mysql_version}
chown -R mysql /data/${mysql_version}

注意:

  1. 配置文件 etc/my.cnf 需要配置完全,包括安装目录,数据存储目录,等...
  2. 初始化数据库表, mysql-5.7.6 之后发生了变更,之前是 mysql_init_db
  3. 若使用etc/my.cnf 中的配置,则需将/etc/my.cnf 中的相关的配置项注释掉

启动mysql

/usr/local/services/${mysql_version}/bin/mysqld_safe --user=mysql &

注意:

无需指定--default-file=$basedir/etc/my.cnf,mysql 有默认的配置文件加载顺序

/etc/my.cnf
basedir/etc/my.cnf

连接mysql

mysql -uroot -p

注意:

若提示无法使用xx.sock,这是因为没有指定连接的sock,可配置my.cnf,指定连接的sock

[client]
socket=/data/${mysql_version}/mysql.sock

更新root密码

update mysql.user set password=password('123456') where user='root';

报错:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解决:

SET PASSWORD = PASSWORD('123456');

关闭mysql

/usr/local/services/${mysql_version}/bin/mysqladmin shutdown -uroot -p

设置启动项

cp support-files/mysql.server /etc/init.d/mysql.server

参考:

mysql-5.7.14 源码安装笔记的更多相关文章

  1. mysql 5.7.18 源码安装笔记

    之所以贴出这样一篇笔记呢?主要是因为很久之前,源码安装MySQL的时候,碰到了太多太多的坎坷. 如果你有兴趣进行源码安装,那么请不要以这篇文章为标准,因为每个人的及其环境等其他因素还是差距比较大的. ...

  2. MySQL学习之路 一 : MySQL 5.7.19 源码安装

    MySQL 5.7.19 源码安装 查看系统: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 安装依赖包 # yum - ...

  3. zabbix-3.4.14源码安装

    此次介绍一下,zabbix的源码安装,因为zabbix的依赖很多,所以源码安装有很多依赖需要安装 首先,下载zabbix源码包 wget https://nchc.dl.sourceforge.net ...

  4. LNMP架构下的nginx、mysql、php的源码安装

    一.LNMP的介绍 LNMP就是Linux+Nginx+Mysql+Php这种网站服务架构.Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统,常见版本有:centos.ubun ...

  5. mysql 在cento下源码安装

    虚拟机改为网络地址转换 (NAT) service network restartping www.baidu.com rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm ...

  6. 数据库的硬迁移和mysql 5.5.38源码安装

    场景:一台服务器出现了故障,需要把数据库迁移到另一台服务器上,由于数据效大,直接压缩数库的数据目录(在数据库DOWN的情况下)数据库版本mysql 5.5.38安装方式:源码安装思路:在另一台服务器上 ...

  7. linux应用之Lamp(apache+mysql+php)的源码安装(centos)

    Linux+Apache+Mysql+Php源码安装 一.安装环境: 系统:Centos6.5x64 Apache: httpd-2.4.10.tar.gz Mysql: mysql-5.6.20-l ...

  8. MySQL 5.6.26源码安装

    5.6.26源码安装包:http://pan.baidu.com/s/1kUl44WRcmake安装包链接:http://pan.baidu.com/s/1c0LuwJA 操作系统版本:CentOS ...

  9. mysql 5.7.11 源码安装

    mysql5.711安装 1.安装boost包下载地址http://sourceforge.net/projects/boost/files/boost/ 2.解压boost_1_59_0.tar.g ...

随机推荐

  1. Ninject之旅之三:Ninject对象生命周期

    摘要 DI容器的一个责任是管理他创建的对象的生命周期.他应该决定什么时候创建一个给定类型的对象,什么时候使用已经存在的对象.他还需要在对象不需要的时候处理对象.Ninject在不同的情况下管理对象的生 ...

  2. 跨域的get和post的区别

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二.最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数.当你在面试中被 ...

  3. ubuntu软件推荐

    本文推荐的ubuntu工具均为笔者亲用.原则:在精不在多. 0.万能类 笔者崇尚[极简主义],常用的工具如果有网页版的就尽量不用单独的client.如网页版微信. 1.系统类 截图:Deepin-sc ...

  4. SqlLocalDB使用笔记

    一.介绍 SqlLocalDB是VS安装时附带的数据库软件,相当于精简版的SQL Express. 二.使用 VS版本为2015,默认安装位置为:C:\Program Files\Microsoft ...

  5. mongo group by

    mongo的写法与mysql等sql有着天壤之别,如最近在统计爬虫抓取的数据,其中一个就是按字段从大到小取前十个: sql写法:select count(id) from invest group b ...

  6. Md5 签名算法

    /// <summary>        /// MD5签名        /// </summary>        /// <param name="pre ...

  7. 9.1 js基础总结2

    3.布尔类型(Boolean) 布尔型数据只有true和false两个值,与字符串不同,不要把布尔值用引号括起来,布尔值false与字符串“false”是两回事. var married = true ...

  8. highchart 动态刷新(可用于制作股票时时走势)

    最近项目中要求获取时时的cpu动态图,利用 highchart 可以轻松实现该功能,效果可在此地址查看:动态效果 代码如下: 页面 js 引用: <script src="你项目js的 ...

  9. Sharepoint 2010 splist url query for date range

    after many attemps,i'v found that Filter feature support the greater than and less than. ie:http://s ...

  10. Struts2,Spring, Hibernate三大框架SSH的整合步骤

    整合步骤 创建web工程 引入相应的jar包 整合spring和hibernate框架 编写实体类pojo和hbm.xml文件 编写bean-base.xml文件 <!-- 1) 连接池实例 - ...