Took me a while to suffer from the first successful souce code installation of mysql-5.6.34. Just put it here and share it with u.

Env.

OS:Red Hat Enterprise Linux Server release 5.5 (Tikanga)
Mysql: mysql-5.6.34

1. Install Cmake

[root@exadata1 cmake-3.7.1]# pwd
/root/mysql_install/cmake-3.7.1
[root@exadata1 cmake-3.7.1]# ./configure
.
.
.
-- Build files have been written to: /root/mysql_install/cmake-3.7.1
---------------------------------------------
CMake has bootstrapped.  Now run gmake.

gmake

make install

2. System configuration

2.1 add user/group
groupadd mysql
useradd -g mysql mysql

2.2 vi /etc/security/limits.conf
mysql   soft    nproc   2047
mysql   hard    nproc   16384
mysql   soft    nofile  1024
mysql   hard    nofile  65536

3. CMake config.

3.1 make sure if the package ncurses has been installed.

[root@exadata1 mysql_install]# rpm -qa ncurses
ncurses-5.5-24.20060715
ncurses-5.5-24.20060715

3.2 unzip the Mysql package.
[root@exadata1 mysql-5.7.17]# tar -zxvf mysql-5.7.17.tar.gz
[root@exadata1 mysql-5.7.17]# pwd
/root/mysql_install/mysql-5.7.17

3.3

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT='JSS for mysqltest' \
-DWITH_READLINE=ON \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock

make && make install

3.4 Trouble shooting and diagnosis.
1.
-- Could NOT find Git (missing:  GIT_EXECUTABLE)

Linux下git安装配置
http://blog.csdn.net/huaishu/article/details/40891229
    tar -xzf  git-2.1.3.tar.gz  
    cd git-2.1.3  
    ./configure -prefix=/usr/local/git --with-curl  --with-expat  
    make && make install  
    
    修改/etc/profile,在PATH中加入git路径,并执行source /etc/profile
    GIT_HOME=/usr/local/git  
    PATH=$PATH:$GIT_HOME/bin:$GIT_HOME/libexec/git-core  
    export PATH GIT_HOME  
    
[root@exadata1 git-2.1.3]# . /etc/profile
[root@exadata1 git-2.1.3]# git --version
git version 2.1.3    
    
2. this can be ignored.
CMake Warning:
  Manually-specified variables were not used by the project:
    WITH_READLINE
-- Build files have been written to: /root/mysql_install/mysql-5.6.34
    

    
4. tar a package that can be deployed to any other host with similar specifications and OS.
[root@exadata1 mysql-5.6.34]# tar zcvf mysql-5.6.34.tar.gz /usr/local/mysql/

should be around 230M.

[root@exadata1 mysql-5.6.34]# ls -lht
total 230M
-rw-r--r--  1 root root  229M Dec 23 08:51 mysql-5.6.34.tar.gz

5. create Mysql DB
5.1
[root@exadata1 mysql-5.6.34]# chown -R mysql.mysql /usr/local/mysql
5.2 make dir
[root@exadata1 ~]# mkdir -p /data/mysqldata/3306/
[root@exadata1 ~]# chown -R mysql.mysql /data

bash-3.2$ id
uid=101(mysql) gid=1006(mysql) groups=1006(mysql)
bash-3.2$ mkdir -p /data/mysqldata/3306/data
bash-3.2$ mkdir -p /data/mysqldata/3306/tmp
bash-3.2$ mkdir -p /data/mysqldata/3306/binlog/mysql-bin
          mkdir -p /data/mysqldata/3306/share/english

5.3 Edit profile

vi ~/.bash_profile

export LANG=zh_CN.GB18030
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

5.4 prepare .cnf

vi /data/mysqldata/3306/my.cnf
[client]
port = 3306
socket = /data/mysqldata/3306/mysql.sock

#The MySQL Server
[mysqld]
port = 3306
user = mysql
socket = /data/mysqldata/3306/mysql.sock
pid-file = /data/mysqldata/3306/mysql.pid
basedir = /usr/local/mysql
datadir = /data/mysqldata/3306/data
language = /data/mysqldata/3306/share/english
tmpdir = /data/mysqldata/3306/tmp
open_files_limit = 10240
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#Buffer
max_allowed_packet = 256M
max_heap_table_size = 256M
net_buffer_length = 8k
sort_buffer_size = 2M
join_buffer_size = 4M
read_buffer_size = 2M
read_rnd_buffer_size = 16M

#Log
log-bin = /data/mysqldata/3306/binlog/mysql-bin
binlog_cache_size = 32M
max_binlog_cache_size = 512M
max_binlog_size = 512M
binlog_format = mixed
log_output = FILE
log-error = ../mysql-error.log
slow_query_log = 1
slow_query_log_file = ../slow_query.log
general_log = 0
general_log_file = ../general_query.log
expire-logs-days = 14

#InnoDB
innodb_data_file_path = ibdata1:2048M:autoextend
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_buffer_pool_size = 1024M

[mysql]
no-auto-rehash
prompt = (\u@\h)[\d]>\_
default-character-set = gbk

5.4 init mysql DB as root
/usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql --user=mysql

/usr/local/mysql/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql

5.5 startup DB as root
mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf &

check status:
[root@exadata1 share]# lsof -i:3306
COMMAND  PID  USER   FD   TYPE     DEVICE SIZE NODE NAME
mysqld  3779 mysql   14u  IPv6 3365226829       TCP *:mysql (LISTEN)
[root@exadata1 share]# netstat -na |grep 3306
tcp        0      0 :::3306                     :::*                        LISTEN      
unix  2      [ ACC ]     STREAM     LISTENING     3365226830 /data/mysqldata/3306/mysql.sock

2016-12-23
15:39:14 0 [Warning] The syntax '--language/-l' is deprecated and will
be removed in a future release. Please use '--lc-messages-dir' instead.
2016-12-23 15:39:14 32112 [ERROR] Can't find messagefile '/data/mysqldata/3306/share/english/errmsg.sys'

Need to copy errmsg.sys from the source package and edit my.cnf (add language parameter)
[root@exadata1 english]# cp /root/mysql_install/mysql-5.6.34/sql/share/english/errmsg.sys /data/mysqldata/3306/share/english/.

5.6 shutdown DB as root ( need mysql root password which is 'mysql123' in my case )
[root@exadata1 english]# mysqladmin -u root -p shutdown
Enter password:
161223 15:48:43 mysqld_safe mysqld from pid file /data/mysqldata/3306/mysql.pid ended
[1]+  Done                    mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf  (wd: /data/mysqldata/3306/share/english)
(wd now: ~/mysql_install/mysql-5.6.34/sql/share/english)

5.7 Add mysql into service so that it can be started when host is rebooted.
[root@exadata1 support-files]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@exadata1 support-files]#

[root@exadata1 support-files]# service mysql status
MySQL running (3779)                                       [  OK  ]
[root@exadata1 support-files]# service mysql stop
Shutting down MySQL..161223 16:15:37 mysqld_safe mysqld from pid file /data/mysqldata/3306/mysql.pid ended
                                                           [  OK  ]
[1]+  Done                    mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf  (wd: /usr/local/mysql/share)
(wd now: /usr/local/mysql/support-files)
[root@exadata1 support-files]# service mysql start
Starting MySQL..                                           [  OK  ]
[root@exadata1 support-files]# service mysql status
MySQL running (5183)                                       [  OK  ]
[root@exadata1 support-files]#

5.8 log into mysql as mysql os user.
[root@exadata1 support-files]# su - mysql
-bash-3.2$
-bash-3.2$
-bash-3.2$ bash
bash-3.2$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

export PATH

bash-3.2$ mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.34-log JSS for mysqltest

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.

(root@localhost)[(none)]>

Reference
http://www.cnblogs.com/jyzhao/p/5516031.html
http://www.cnblogs.com/Richardzhu/p/3220883.html

mysql-5.6.34 Installation from Source code的更多相关文章

  1. MySQL在linux上(cmake)的source code安装方法

    1.安装前准备: 1)必备的包和工具  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.  cmake  :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以 ...

  2. How to Build MySQL from Source Code on Windows & compile MySQL on win7+vs2010

    Not counting obtaining the source code, and once you have the prerequisites satisfied, [Windows] use ...

  3. 退役笔记一#MySQL = lambda sql : sql + ' Source Code 4 Explain Plan '

    Mysql 查询运行过程 大致分为4个阶段吧: 语法分析(sql_parse.cc<词法分析, 语法分析, 语义检查 >) >>sql_resolver.cc # JOIN.p ...

  4. How to build the Robotics Library from source code on Windows

    The Robotics Library is an open source C++ library for robot kinematics, motion planning and control ...

  5. How to build windows azure PowerShell Source Code

    Download any version source code of Windows Azure Powershell from https://github.com/Azure/azure-sdk ...

  6. 用source code编译安装Xdebug

    1. Unpack the tarball: tar -xzf xdebug-2.2.x.tgz.  Note that you do not need to unpack the tarball i ...

  7. 3 Ways of JDK Source Code Attachment in Eclipse---reference

    You wanna look at a JVM class while you are coding and you cannot. Here is the solution. First of al ...

  8. How to get the source code of the chromium of the specified revision

    I'd like to get the source code of the chromium 34.0.1847.9. gclient config http://src.chromium.org/ ...

  9. [转]Native Java Bytecode Debugging without Source Code

    link from:http://www.crowdstrike.com/blog/native-java-bytecode-debugging-without-source-code/index.h ...

随机推荐

  1. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  2. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  3. CSS 3学习——animation动画

    以下内容根据官方文档翻译以及自己的理解整理. 1.  介绍 本方案介绍动画(animations).通过动画,开发者可以将CSS属性值的变化指定为一个随时间变化的关键帧(keyframes)的集合.在 ...

  4. SQL Server on Linux 理由浅析

    SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...

  5. JavaScript Array对象

    介绍Js的Array 数组对象. 目录 1. 介绍:介绍 Array 数组对象的说明.定义方式以及属性. 2. 实例方法:介绍 Array 对象的实例方法:concat.every.filter.fo ...

  6. react入门参考资料--step by step

    ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站.做出 ...

  7. Django admin定制化,User字段扩展[原创]

    前言 参考上篇博文,我们利用了OneToOneField的方式使用了django自带的user,http://www.cnblogs.com/caseast/p/5909248.html , 但这么用 ...

  8. SHA-1算法

    SHA-1.h #ifndef _SHA1_H #define _SHA1_H #include<iostream> using namespace std; //4个函数 #define ...

  9. Android中访问sdcard路径的几种方式

    以前的Android(4.1之前的版本)中,SDcard路径通过"/sdcard"或者"/mnt/sdcard"来表示,而在JellyBean(安卓4.1)系统 ...

  10. MySQL:常见使用问题

    内容 1.Linux 上安装 MySQL 2.单机上安装多实例 3.不知root密码情况下,修改root密码 1.Linux 上安装MySQL 安装步骤: 1)解压 tar.gz文件 -linux-g ...