本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan-ma-an-zhuang.html来写的

  最近在学习搭建LNMP环境,nginx相对来说还是比较好搭的,但是mysql就太坑爹了,之前在网上查资料的时候看到一个人说它花了一周的时间源码搭建mysql,刚开始内心还有点嘲笑他,但是此时此刻我发现是我错了,周日花了一天的时间使用源码安装了mysql,累感不爱。在ubuntu下mysql可以使用apt-get命令一步安装,仅做少许配置,但是源码安装真是掉了一层皮,但是源码安装又是一个运维必须要会的一个东西,所以必须学习。

  1、下载mysql

  这个是最基本的第一步,下载地址http://dev.mysql.com/downloads/mysql/,我选择了5.7版本的,这一版相对前几版在配置上变化较大,这也是在我之后搭建的过程中发现的,但是后悔已经来不及了。

  2、下载相关依赖

sudo apt-get install cmake libncurses5-dev  bison g++

  这里要注意的是ubuntu下的libncurses5-dev在红帽下是另一个名字,这个请自行百度。

  3、创建mysql用户、组

groupadd mysql
useradd -r mysql -G mysql

  4、解压mysql

  我把下载好的mysql压缩包放在了/root目录下,因为之后要多次使用root权限,索性直接切换到root了。  

tar -xzvf mysql-5.7..tar.gz
cd mysql-5.7..tar.gz

  5、生成配置文件

  在mysql5.7以前,使用configure生成配置文件,但是5.7是使用cmake生成的。这也就是为什么之前要安装cmake的原因。

  在这里要注意的一点是需要事先安装好boost,如果没有,在cmake最后再加个参数-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

即可,系统会自动帮你下载解压安装boost

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT= -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE= -DWITH_INNOBASE_STORAGE_ENGINE= -DWITH_ARCHIVE_STORAGE_ENGINE= -DWITH_BLACKHOLE_STORAGE_ENGINE= -DWITH_MEMORY_STORAGE_ENGINE= -DDOWNLOAD_BOOST= -DWITH_BOOST=/usr/local/boost
make&&make install

参数含义:    

-DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
-DMYSQL_DATADIR:数据文件目录
-DDEFAULT_CHARSET:指定服务器默认编码,默认latin1
-DDEFAULT_COLLATION:指定服务器默认的整理编码,默认latin1_general_ci
-DMYSQL_UNIX_ADDR:连接数据库socket文件路径,默认/tmp/mysql.sock

-DENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
-DWITH_DEBUG bool值,表示是否开启debug模式
-DWITH_MYISAM_STORAGE_ENGINE= MYISAM引擎支持(1|0)
-DWITH_INNOBASE_STORAGE_ENGINE= innoDB引擎支持(1|0)
-DWITH_MEMORY_STORAGE_ENGINE= MEMORY引擎支持(1|0)
-DWITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
SYSCONFDIR:初始化参数文件目录
-DMYSQL_TCP_PORT:服务端口号,默认3306
-DWITH_COMMENT:指定编译备注信息

  6、编译安装

  创建安装目录
    mkdir -p /usr/local/mysql/data
  设置权限
    chown -R mysql:mysql /usr/local/mysql
  编译并安装
    make&&make install

  7、配置(这里的问题最多,出了很多问题,到现在只有这个勉强能用的方法)

  ①复制my.cnf配置文件

    cp /usr/local/mysql/support-files/***.cnf /etc/my.cnf

  ②配置/etc/my.conf

[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/mysql_error.log
pid-file=/usr/local/mysql/mysql.pid #socket=/usr/local/mysql/mysql.sock
user=mysql
port=
explicit_defaults_for_timestamp=true [mysqld_safe]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-error=/usr/local/mysql/mysql_error.log
pid-file=/usr/local/mysql/mysql.pid

  ③复制权限文件

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

  ④初始化MySQL(这步完成后/usr/local/mysql/data目录下有数据了,本来是空的)

    sudo bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid 生成无密码用户

    或sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid 生成随机密码用户

  ⑤启动MySQL(修改密码)

    如果不先使用mysqld_safe直接启动mysql的话,就会报错

    /usr/local/mysql/bin/mysqld_safe --user=mysql &

    service mysql start

    /usr/local/bin/mysql -u root -h 127.0.0.1 --skip-password(无密码)

    或/usr/lcoal/bin/mysql -u root -h 127.0.0.1 -p (有密码)

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';  (注意前面的mysql>是进入mysql的标志,不是命令)

    mysql> quit

    service mysql stop

    可以看到退出mysql服务时是把mysqld_safe也关闭的

  ⑧启动mysql(登陆)

    /usr/local/bin/mysqld_safe &

    service mysql start

    mysql -u root -p

  从上面可以看出每次启动mysql时都要先启动mysqld_safe,在启动mysql,关闭mysql时会把mysqld_safe一起关掉,所以这就是我认为安装的不完美的地方,如果是终端apt-get安装的话从来没有发生过这种情况。看了mysql的官网在介绍安装的时候也是这么讲的也许是5.7版本就是这样操作的,连接:

  http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html

  http://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysql-install-db.html

    

  

ubuntu mysql5.7源码安装的更多相关文章

  1. mysql5.6源码安装(转)

    mysql5.6源码安装 转自 jabbok博客园 https://www.cnblogs.com/jabbok/p/9418344.html 1 编译安装 1 2 3 4 5 6 groupadd ...

  2. 在 Ubuntu 上使用源码安装 OpenResty

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 本文将介绍如何在 Ubuntu 上使用源码安装 OpenResty. 目标 Ubuntu 18.04 OpenResty 1.19.3.2 安装依 ...

  3. MYSQL5.5源码安装 linux下

    /* 首先安装必要的库 */ yum -y install gcc* ###### 安装 MYSQL ###### 首先安装camke 一.支持YUM,则 yum install -y cmake 二 ...

  4. ubuntu php5.6源码安装

    本系列的lnmp的大框架基本上是按照http://www.linuxzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan ...

  5. Mysql5.5源码安装步骤笔记记录

    1.cmake软件的安装wget https://cmake.org/files/v3.5/cmake-3.5.0-rc3.tar.gztar xf cmake-3.5.0.tar.gzcd cmak ...

  6. Linux MySQL5.5源码安装

    环境:CentOS7,MySQL5.5 1.MySQL5.5源码下载 Oracle的网站打开较慢,http://mirrors.sohu.com/mysql/这里提供了MySQL的镜像.一般的,Lin ...

  7. [笔记] Ubuntu 18.04源码安装caffe流程

    虽然Ubuntu 18.04可以通过apt安装caffe,但是为了使用最新的代码,还是值得从源码安装一遍的. 安装环境 OS: Ubuntu 18.04 64 bit 显卡: NVidia GTX 1 ...

  8. 在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境

    原文: How to install OpenERP 8.0 Alpha on a fresh Debian / Ubuntu server. OpenERP的安装,可以有多种方式,通过添加源,到 h ...

  9. CentOS6.5+mysql5.1源码安装过程

    一:先安装依赖包(不然配置的时候会报错的!) yum -y install ncurses* libtermcap* gcc-c++* 新建mysql用户 [root@HE1Packages]# gr ...

随机推荐

  1. Food Delivery (区间DP)

    When we are focusing on solving problems, we usually prefer to stay in front of computers rather tha ...

  2. devstack脚本安装Openstack总结(转载)

    1:vmware 基本设置 我采用的vmware workstation 8.0的版本,其他版本应该都是没问题.我是把虚拟机放在NAT的网络. 虚拟机就单块网卡就可以. 如果你希望可以在dashboa ...

  3. [luoguP3178] [HAOI2015]树上操作(dfs序 + 线段树 || 树链剖分)

    传送门 树链剖分固然可以搞. 但还有另一种做法,可以看出,增加一个节点的权值会对以它为根的整棵子树都有影响,相当于给整棵子树增加一个值. 而给以某一节点 x 为根的子树增加一个权值也会影响当前子树,节 ...

  4. Codeforces Round #277 (Div. 2 Only)

    A:SwapSort http://codeforces.com/problemset/problem/489/A 题目大意:将一个序列排序,可以交换任意两个数字,但要求交换的次数不超过n,输出任意一 ...

  5. jmesa应用

    一直以来,都没发现什么好的分页组件,最初时用过displaytag,仔细研究了一下,发现它并没有别人说的那么强大,至少离自己的期望还很远,因此尝试寻找其它新的分页组件,但很久以来都没发现自己满意的.无 ...

  6. SQL Prompt 5.1使用

    SQL Prompt 5.1教程 1.下载 自行下载安装文件.本人是从http://www.cr173.com/下载的. 2.安装 安装没什么特别的,不用说了 3.注意一下破解和配置 按里面的read ...

  7. mac上storm standalone安装

    一.安装storm 下载storm http://storm.apache.org/downloads.html export STORM_HOME=/Users/huangjiahong/Docum ...

  8. jQuery的切换函数(hover,toggle)

    1.hover:(鼠标悬停与离开事件) 一个模仿悬停事件(鼠标移动到一个对象上面及移出这个对象)的方法.这是一个自定义的方法,它为频繁使用的任务提供了一种“保持在其中”的状态. 当鼠标移动到一个匹配的 ...

  9. 《TCP/IP详解卷1:协议》——第5章 RARP:逆地址解析协议(转载)

    1.引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址.但是无盘机,如X终端或无盘工作站,则需要采用其他方法来获得IP地址. 网络上的每个系统都具有唯一的硬件地址,它是由网络接口生 ...

  10. 收藏CSS经典技巧

    一. CSS字体属性简写规则 一般用CSS设定字体属性是这样做的: font-weight: bold; font- style: italic; font-varient: small-caps;  ...