1:官网下载source code源码安装文件

https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz

2:安装准备

先看一下文件和路径:

[root@16-31 mysql]# pwd

/home/mysql

[root@16-31 mysql]# ls

mysql-boost-5.7.20.tar.gz

我们看一下官网给出的源码安装需要的条件:

CMake, which is used as the build framework on all platforms. CMake can be downloaded from http://www.cmake.org.

A good make program. Although some platforms come with their own make implementations, it is highly recommended that you use GNU make 3.75 or higher. It may already be available on your system as gmake. GNU make is available from http://www.gnu.org/software/make/.

A working ANSI C++ compiler. See the description of the FORCE_UNSUPPORTED_COMPILER. option for some guidelines.

The Boost C++ libraries are required to build MySQL (but not to use it). Boost 1.59.0 must be installed. To obtain Boost and its installation instructions, visit the official site. After Boost is installed, tell the build system where the Boost files are located by defining the WITH_BOOST option when you invoke CMake. For example:

shell> cmake . -DWITH_BOOST=/usr/local/boost_1_59_0

Adjust the path as necessary to match your installation.

The ncurses library.

Sufficient free memory. If you encounter problems such as “internal compiler error” when compiling large source files, it may be that you have too little memory. If compiling on a virtual machine, try increasing the memory allocation.

Perl is needed if you intend to run test scripts. Most Unix-like systems include Perl. On Windows, you can use a version such as ActiveState Perl.

上面是官网给的例子,我们先需要下载一个Boost C++ 1.59.0(这是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件许可协议(Boost Software License)之下。),下载地址:

https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz/download

接下来我们开始进行一些准备工作(安装依赖包,用户以及目录):

yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmake

groupadd mysql

useradd -r -g mysql -s /bin/false -M mysql

mkdir -p /home/mysql/{data,log,tmp}

ls /home/mysql/

chown -R mysql:mysql /home/mysql/

3:安装

解压两个压缩文件,MySQL和Boost,然后开始进行编译安装:

[root@16-31 mysql-5.7.20]# cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

然后进行make

make

这个过程时间会比较久,我这边大概两个小时的样子,然后安装:

make install

然后我们先把安装目录添加到环境变量中:

[root@mdw mysql]# echo "export PATH=$PATH:/home/mysql/bin">>/etc/profile

[root@mdw mysql]# source /etc/profile

以上步骤完成以后就是初始化数据库了:

[root@mdw datafile]# mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp

OK,现在我们初始化也完成了,接下来我们配置一下我们的my.cnf文件

[client]

port = 3306

socket = /home/datafile/mysql3306/temp/mysql.sock

[mysqld]

# Skip #

skip_name_resolve = 1

skip-external-locking = 1

symbolic-links= 0

# GENERAL #

user = mysql

default_storage_engine = InnoDB

character-set-server = utf8

socket = /home/datafile/mysql3306/temp/mysql.sock

pid_file =/home/datafile/mysql3306/temp/mysqld.pid

basedir = /home/mysql

port = 3306

bind-address = 0.0.0.0

log-warnings = 2

explicit_defaults_for_timestamp = off

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#read_only=on

sql_mode=NO_ENGINE_SUBSTITUTION

# MyISAM #

key_buffer_size = 32M #size of the buffer used for index blocks#

#myisam_recover = FORCE,BACKUP

# SAFETY #

max_allowed_packet = 16M

max_connect_errors = 1000000

sysdate_is_now = 1

#innodb= FORCE

#innodb_strict_mode = 1

# Replice #

server-id = 313306

relay_log = mysqld-relay-bin

gtid_mode = on

enforce-gtid-consistency

log-slave-updates = on

master_info_repository =TABLE

relay_log_info_repository =TABLE

# rpl_semi_sync_master_enabled=1

# rpl_semi_sync_master_timeout=200 # 0.2 second

# DATA STORAGE #

datadir = /home/datafile/mysql3306/data/

tmpdir= /home/datafile/mysql3306/temp/

# BINARY LOGGING #

log_bin =/home/datafile/mysql3306/log/mysql-bin

max_binlog_size = 1000M

binlog_format = row

expire_logs_days = 7

# sync_binlog = 1

# CACHES AND LIMITS #

tmp_table_size = 32M

max_heap_table_size = 32M

query_cache_type = 0

query_cache_size = 0

max_connections = 4000

thread_cache_size = 2048

open_files_limit = 65535

table_definition_cache = 4096

table_open_cache = 4096

sort_buffer_size = 20M

read_buffer_size = 2M

read_rnd_buffer_size = 2M

#thread_concurrency = 24

join_buffer_size = 1M

# table_cache = 32768

thread_stack = 512k

max_length_for_sort_data = 16k

# INNODB #

innodb_flush_method = O_DIRECT

innodb_log_buffer_size = 16M

innodb_flush_log_at_trx_commit = 2

innodb_file_per_table = 1

innodb_buffer_pool_size = 2G

innodb_buffer_pool_instances = 8

innodb_stats_on_metadata = off

innodb_open_files = 8192

innodb_read_io_threads = 8

innodb_write_io_threads = 16

innodb_io_capacity = 20000

innodb_thread_concurrency = 0

innodb_lock_wait_timeout = 60

innodb_old_blocks_time=1000

innodb_use_native_aio = 1

innodb_purge_threads=1

innodb_change_buffering=all

innodb_log_file_size = 128M

innodb_log_files_in_group = 3

innodb_data_file_path = ibdata1:1024M:autoextend

# LOGGING #

log_error = /home/datafile/mysql3306/log/mysql-error.log

# log_queries_not_using_indexes = 1

# slow_query_log = 1

slow_query_log_file = /home/datafile/mysql3306/log/slowlog_36215.log

# TimeOut #

interactive_timeout = 30

wait_timeout = 30

[mysqldump]

quick

max_allowed_packet = 16M

[mysql]

no-auto-rehash

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 256M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout

这里要说明下,就是参数要根据自己的机器配置,不能直接照抄使用,然后直接启动mysql:

mysqld_safe --defaults-file=/etc/my.cnf &

我们从日志中找到初始密码:

2017-12-11T06:59:05.094646Z 1 [Note] A temporary password is generated for root@localhost: ,fsQ:tkik6un

登录修改密码就好了。 最后,我们将我们的编译包打包,以后可以直接拷贝使用。

4:解压使用编译压缩包

先拷贝:

scp /home/mysql.tar sa@172.16.16.34:/home/sa/

解压:

[root@sdw1 home]# mv mysql.tar /home/[root@sdw1 home]# tar zxvf mysql.tar

然后我们创建MySQL相关的用户和目录以及授权等:

groupadd mysql

useradd -r -g mysql -s /bin/false -M mysql

mkdir -p /home/datafile/mysql3306/{data,log,temp}

ls /home/datafile/mysql3306

chown -R mysql:mysql /home/datafile/mysql3306

echo "export PATH=$PATH:/home/mysql/bin">>/etc/profile

source /etc/profile

然后使用刚才配置文件再初始化一下(要修改个别参数):

[root@sdw1 mysql3306]# mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp

[root@sdw1 mysql3306]# mysqld_safe--defaults-file=/etc/my.cnf &

然后找到密码初始化搞定。

mysql 5.7 编译_MySQL5.7.20编译安装相关推荐

  1. mysql5.5.20安装图解_mysql5.5.20的安装步骤

    Mysql 5.5.20 的安装步骤: 思路: 1. groupadd -r mysql useradd -g mysql -s /sbin/nologin -M mysql tar zvxf /ro ...

  2. mysql 5.7 编译_Mysql5.7版本编译安装及配置

    配置yum安装方式 1.配置本地yum源 1 vim /etc/yum.repos.d/rhel-source.repo2 [rhel-source] 3 name=Red Hat Enterpris ...

  3. mysql 5.7.20主从配置_mysql5.7.20免安装版配置方法图文教程

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. mysql5.7.24免安装版配置_mysql5.7.20免安装版配置方法图文教程

    看到网上有很多有关的教程,但是在自己安装过程中还是会出现一定错误,索性整理出来,总结一下自己的mysql5.7.20安装过程,供大家借鉴.(说实话,配置环境这玩意,经常出现莫名其妙的问题) 1. 下载 ...

  5. windows7 mysql 5.6使用_MySQL5.6 windows7下安装及基本操作

    图形界面安装MySQL5.6 关于图形界面的安装,网上相关相关资料比较多,此处省略安装过程.安装过程中选择安装路径.所需组件及root账号密码. 1.目前针对不同用户,MySQL提供了2个不同的版本: ...

  6. Linux LNMP源码架构部署 | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | 超详细

    | Nginx服务 | Mysql服务 | php服务 | 论坛源码编译安装 | ➤安装 Nginx 服务 ➤1.关闭防火墙和安全机制 ➤2.卸载自带的httpd服务 ➤3.安装依赖包 ➤4.创建运行 ...

  7. LNMP架构详解(2)——Mysql、PHP、Nginx源码编译过程

    前言 本文将介绍LNMP架构中Mysql.PHP.Nginx的源码编译过程:这时有人不仅会问:在我们使用的Linux系统中,可以从yum源中获得mysql.php,为什么要进行如此漫长复杂的过程进行编 ...

  8. linux cmake编译源码,linux安装mysql(源码)以及cmake编译

    说明:mysql 5.5开始必须用cmake编译 系统环境archlinux,mysql版本5.5.27,cmake版本2.2.8 安装: (1).安装cmake.cmake是一款跨平台的编译工具 [ ...

  9. mysql 5.764_RHEL5.764位源码编译安装MySQL-5.5.42遇到的问题

    由于MySQL从5.5之后的版本源码编译安装用cmake, make, make install安装,不用./Configure,make,make install 安装,所以要看下系 由于MySQL ...

最新文章

  1. mysql pos点是什么,MySQL 5.6 主从报错一例
  2. ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE
  3. SAP UI5 事件通知技术的实现之Eventbus.subscribe
  4. cgi硬盘安装器_系统镜像安装CGI备份还原
  5. mongodb查询文件服务器的数据,服务器端知识库mongodb基础篇
  6. 归纳推理测试没做完_天气热,教你用寒天粉做果冻,清凉爽滑,5秒吃完一盘没问题...
  7. Ubuntu 平滑升级到PHP7
  8. 6.2神经网络算法应用上学习笔记
  9. YUV转RGB(Android)
  10. Android 连接USB设备(主机模式)
  11. 什么是最小二乘法,及最小二乘法的应用详解
  12. OD常用断点函数(转载)
  13. 一些英文词的标准缩写
  14. 解决 Costmap2DROS transform timeout.问题
  15. 使用百度地图api根据网吧名称获取经纬度信息
  16. c语言实现单链表的创建(完整版)
  17. 使用Docker 镜像
  18. 让金山词霸在 Adobe Reader XI 的 PDF 中取词
  19. 比特宇宙-TCP/IP的诞生
  20. 未来的计算机300,【精选】未来在电脑在作文300字三篇

热门文章

  1. 一道有意思的概率应用题
  2. Gram-Schmidt正交化
  3. Redis实战(十二)Redis实现分布式锁
  4. leetcode力扣刷题系列python——2、两数相加
  5. vue+webapi 实现WebSocket 推送
  6. 一个back propagation的例子
  7. 桥接模式Bridge
  8. Mispelling4
  9. 十二、用Axis操作 Header头部信息
  10. node版本管理和npm源管理工具