MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境
https://dev.mysql.com/doc/refman/5.7/en/source-installation.html  #mysql官网,源码安装Mysql,依靠Cmake

下载安装Cmake

[root@localhost1 cmake-3.9.]# wget https://cmake.org/files/v3.9/cmake-3.9.6.tar.gz
[root@localhost1 cmake-3.9.]# tar zxf cmake-3.9..tar.gz
[root@localhost1 cmake-3.9.]# cd cmake-3.9.
[root@localhost1 cmake-3.9.]# ./configure
[root@localhost1 cmake-3.9.]# gmake
[root@localhost1 cmake-3.9.]# gmake install

[root@localhost1 cmake-3.9.6]# which gmake
/usr/bin/gmake

安装Mysql之前必须要安装的组件

检查系统中是否有mysql,卸载掉:
yum -y install gcc* libaio* ncurses-devel
groupadd mysql
useradd mysql -s /sbin/nologin -M -g mysql
mkdir -p /opt/mysql5.7.21/{data/,tmp/}
如果mysql没有正确安装,要在初始化时指定路径
https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html  Mysql官网编译参数详解
-DCMAKE_INSTALL_PREFIX=dir_name
安装基础目录。
该值可以在服务器启动时使用该--basedir选项进行设置 。 -DMYSQL_DATADIR=dir_name
MySQL数据目录的位置。
该值可以在服务器启动时使用该--datadir选项进行设置 。 -DMYSQL_UNIX_ADDR=file_name
服务器侦听套接字连接的Unix套接字文件路径。这必须是绝对路径名称。默认是/tmp/mysql.sock。
该值可以在服务器启动时使用该--socket选项进行设置 。 -DDEFAULT_CHARSET=charset_name
服务器字符集。默认情况下,MySQL使用 latin1(cp1252西欧)字符集。
charset_name可以是一种 binary,armscii8, ascii,big5, cp1250,cp1251, cp1256,cp1257, cp850,cp852, cp866,cp932, dec8,eucjpms, euckr,gb2312, gbk,geostd8, greek,hebrew, hp8,keybcs2, koi8r,koi8u, latin1,latin2, latin5,latin7, macce,macroman, sjis,swe7, tis620,ucs2, ujis,utf8, utf8mb4,utf16, utf16le,utf32。允许的字符集在cmake/character_sets.cmake文件中被列为 值CHARSETS_AVAILABLE。
该值可以在服务器启动时使用该--character_set_server选项进行设置 。 -DDEFAULT_COLLATION=collation_name
服务器整理。默认情况下,MySQL使用 latin1_swedish_ci。使用该 SHOW COLLATION语句来确定每个字符集可用的排序规则。
该值可以在服务器启动时使用该--collation_server选项进行设置 。

cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql-5.7.21 -DMYSQL_DATADIR=/opt/mysql-5.7.21/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/opt/mysql-5.7.21/tmp/mysql.sock -DWITH_BOOST=/opt/boost这个参数是必须的 -DWITH_DEBUG=1#上面没写

/etc/my.cnf配置:

[root@localhost init.d]# cat /etc/my.cnf
# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used
# from time to time and it's important that the mysqld daemon
# doesn't use much resources.
#
# MySQL programs look for option files in a set of
# locations which depend on the deployment platform.
# You can copy this option file to one of those
# locations. For information about these locations, see
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# In this file, you can use all long options that a program supports.
# If you want to know which options a program supports, run the program
# with the "--help" option.
# The following options will be passed to all MySQL clients
#配置指令传递给与 MYSQL 服务器相关的客户端
[client]#客户端
#password = your_password #密码
port = #服务的端口,如果需要修改,在确保所有配置文件中都修改
socket = /application/mysql-5.1./tmp/mysql.sock #套接字文件的路径
# Here follows entries for some specific programs
# The MySQL server #MYSQL 服务器
[mysqld] #启动命令脚本文件
port = #端口
socket = /application/mysql-5.1./tmp/mysql.sock #套接字文件的路径
skip-locking
key_buffer_size = 16K #索引块的缓冲区大小
max_allowed_packet = 1M #服务能请求包的最大大小为 1M
table_open_cache = #所有线程所打开表的数量
sort_buffer_size = 64K #排序使用的缓冲区大小
read_buffer_size = 256K #读查询操作使用的缓冲区大小
read_rnd_buffer_size = 256K #随机读取缓冲区的大小
net_buffer_length = 2K #
thread_stack = 128K
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (using the "enable-named-pipe" option) will render mysqld useless!
#
#skip-networking
server-id = #本机的序号, master 进程
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /application/mysql-5.1./data
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /application/mysql-5.1./data
# You can set .._buffer_pool_size up to - %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M #INnodb 缓冲池的大小
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to % of buffer pool size
#innodb_log_file_size = 5M #INnodb 日志文件大小
#innodb_log_buffer_size = 8M #INnodb 日志缓冲区大小
#innodb_flush_log_at_trx_commit =
#innodb_lock_wait_timeout = #INnodb 事务锁定前的超时时间
[mysqldump]
quick
max_allowed_packet = 16M #服务器发送与接收的包的最大大小
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout #服务器关闭连接前等待活动的时间

错误总结:

MySQL5..17在cmake的时候报错如下:

点击(此处)折叠或打开

CMake Error at cmake/boost.cmake: (MESSAGE):
You can download it with -DDOWNLOAD_BOOST= -DWITH_BOOST=
This CMake script will look for boost in . 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: (COULD_NOT_FIND_BOOST)
CMakeLists.txt: (INCLUDE)
-- Configuring incomplete, errors occurred!
See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeOutput.log".
See also "/root/mysqlsoftware/mysql-5.7.17/CMakeFiles/CMakeError.log".
解决办法是:
.在/usr/local下创建一个名为boost的文件夹
mkdir -p /usr/local/boost
.进入这个新创建的文件夹然后下载boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
.解压
tar -xvzf boost_1_59_0.tar.gz
.继续cmake,添加上红色部分 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE= \
-DWITH_FEDERATED_STORAGE_ENGINE= \
-DWITH_BLACKHOLE_STORAGE_ENGINE= \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE= \
-DWITH_PARTITION_STORAGE_ENGINE= \
-DWITH_PERFSCHEMA_STORAGE_ENGINE= \
-DCOMPILATION_COMMENT='Mysqlma' \
-DWITH_READLINE=ON \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/data/mysqldata/ \
-DMYSQL_UNIX_ADDR=/data/mysqldata//mysql.sock
-DWITH_BOOST=path_name

Boost库是构建MySQL所必需的。这些 CMake选项可以控制库源位置,以及是否自动下载它:

-DWITH_BOOST=path_name 指定Boost库目录位置。也可以通过设置BOOST_ROOT或 WITH_BOOST环境变量来指定Boost位置 。

从MySQL 5.7.11开始,它 -DWITH_BOOST=system是允许的,并且表示在标准位置的编译主机上安装了正确版本的Boost。在这种情况下,使用的是Boost的安装版本,而不是MySQL源代码发行版中包含的任何版本。

-DDOWNLOAD_BOOST=bool 指定是否在指定位置不存在的情况下下载Boost源。默认是 OFF。

-DDOWNLOAD_BOOST_TIMEOUT=seconds 下载Boost库的超时时间(秒)。默认值是600秒。

例如,如果您通常构建MySQL,将对象输出放置在bldMySQL源代码树的子目录中,则可以使用Boost构建,如下所示:

mkdir bld
cd bld
cmake .. -DDOWNLOAD_BOOST=ON -DWITH_BOOST=$HOME/my_boost
这会导致Boost被下载到 my_boost您的主目录下的目录中。如果所需的Boost版本已经存在,则不进行下载。如果所需的Boost版本更改,则会下载较新的版本。 如果Boost已经在本地安装,并且编译器自己找到Boost头文件,则可能不需要指定前面的CMake选项。但是,如果MySQL所需的Boost版本发生更改并且本地安装的版本尚未升级,则可能会出现构建问题。使用CMake 选项应该给你一个成功的构建。 通过上述允许将Boost下载到指定位置的设置,当所需的Boost版本发生更改时,您需要删除该bld文件夹并重新创建该文件夹,然后再次执行cmake步骤。否则,新的Boost版本可能无法下载,编译可能会失败。
http://blog.csdn.net/cryhelyxx/article/details/47610247    问题的解决
bin/mysqld --initialize --user=mysql  初始化mysql。指定用户   --initialize会自动生成密码    
cp /opt/mysql-5.7./support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
echo 'export PATH=/application/mysql/bin:$PATH'>>/etc/profile
在不知道mysql root密码的情况下修改密码
[root@cairui mysql]# bin/mysqld_safe --skip-grant-tables &
在mysql中输入一下命令
update mysql.user set authentication_string=password('root') where user='root' ;
加入开机启动
[root@cairui ~]# chkconfig mysqld on
http://www.bubuko.com/infodetail-2167283.html  不需要/etc/my.cnf的解释

You must SET PASSWORD before executing this statement的解决方法

http://www.jb51.net/article/39187.htm

LAMP之Mysql源码配置安装的更多相关文章

  1. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  2. mysql源码版安装

    mysql源码版安装 创建配置文件 创建 my.ini,注意修改,如下的 设置mysql的安装目录和设置mysql数据库的数据的存放目录,设置自己本机的上的对应路径 [mysql] # 设置mysql ...

  3. ubuntu下mysql源码编译安装

    建议:cpu4核以上,内存4G以上 1. 安装环境:Ubuntu Server 14.10MySQL-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make ...

  4. mysql源码编译安装

    首先去官网http://dev.mysql.com/downloads/mysql/ 下载mysql源码.我下的是5.7.10 源码选择的是 Generic Linux (Architecture I ...

  5. Mysql源码编译安装&主从复制

    一)camke源码编译安装mysql 1)创建软件安装目录software [root@master software]# ls cmake-2.8.8.tar.gz mysql-5.5.32.tar ...

  6. MySQL 源码编译安装

    脚本须知: 1. 该脚本目前只测试过mysql版本为5.6.x的源码,其他源码可以对本脚本稍作修改即可 2. 本脚本也可以使用wget mysql源码的方式进行,但考虑到后期提供源码的地址不可用,所以 ...

  7. mysql源码包安装

    一.准备编译环境 # yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake # wget ht ...

  8. MySQL 源码编译安装脚本

    cat mysql_init.shmysql_init.sh               mysql_init.sh.20190401      mysql_init.sh.back20171030  ...

  9. Mysql 源码编译安装 ( 5.5 、5.6 共存 )

    简介: 如何在一台服务器同时运行两 ( 多 ) 个 MySQL 服务. 1.MySQL 5.6 shell > useradd -r -s /sbin/nologin mysql shell & ...

随机推荐

  1. JavaWeb开发Eclipse环境配置--史上最详细的教程

    [前言] JSP本身是JavaWeb中的知识,但是在学习Android网络时,必然要涉及到与服务器之间的交互,所以学一下JSP以及其他JavaWeb的内容还是很有必要的,至少能明白程序在访问服务器时, ...

  2. 【转】href="#"与"javascript:void(0);"的区别

    在工作中,如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href="#" target="_blank"></a&g ...

  3. vue-cli脚手架build目录中的webpack.dev.conf.js配置文件

    此文章用来解释vue-cli脚手架build目录中的webpack.dev.conf.js配置文件 此配置文件是vue开发环境的wepack相关配置文件 关于注释 当涉及到较复杂的解释我将通过标识的方 ...

  4. CPU, PSU, SPU的区别

    It all started in January 2005 with Critical Patch Updates (CPU).  Then Patch Set Updates (PSU) were ...

  5. jackson 进行json与java对象转换 之二

    主要用于测试学习用jackson包实现json.对象.Map之间的转换. 1.准备测试用的Java类 (1)Link类 package test; /** * Description: 联系方式,被u ...

  6. leetcode643

    double findMaxAverage(vector<int>& nums, int k) { double max = INT_MIN; int len = nums.siz ...

  7. k8s cookbook读书笔记 第二章

    走一遍概念 An overview of Kubernetes control f Working with pods f Working with a replication controller ...

  8. Tiny4412 Linux 内核启动流程

    Linux内核的启动分为压缩内核和非压缩内核两种,这里我们以压缩内核为例.压缩内核运行时,将运行一段解压缩程序,得到真正的内核镜像,然后跳转到内核镜像运行.此时,Linux进入非压缩内核入口,在非压缩 ...

  9. Spring事务SPI及配置介绍

      Spring事务SPI及配置介绍 标签: spring事务aop数据管理 2015-05-17 11:42 606人阅读 评论(0) 收藏 举报  分类: Spring(12)  版权声明:本文为 ...

  10. hadoop-eclipse-plugin-2.6.0-cdh5.4.0 插件编译

    1.JDK配置 1) 安装jdk 2) 配置环境变量 JAVA_HOME.CLASSPATH.PATH等设置 2.Eclipse 1).下载eclipse-jee-juno-SR2.rar 2).解压 ...