之所以贴出这样一篇笔记呢?主要是因为很久之前,源码安装MySQL的时候,碰到了太多太多的坎坷。

如果你有兴趣进行源码安装,那么请不要以这篇文章为标准,因为每个人的及其环境等其他因素还是差距比较大的。

但可以作为一篇流程参考文档,其中的坑点总结,希望能帮助大家绕过一些不必要的麻烦!

坑点

1 5.7.6以后安装必须有boost支持

2 权限和路径比较坑,步骤较多,如果中间错了,

先检查之前执行命令时权限是否正确,

再检查每一步操作的路径是否符合自己本地要求

3 很多人傻傻的找不到源码包在哪里,两个都是源码包

只不过下一个包含boost依赖

准备

1、首先安装依赖包

yum install -y gcc gcc-c++ ncurses-devel perl openssl-devel

最最重要的是,不要忘了安装openssl-devel

2、安装cmake

sudo yum install cmake

1 mysql迅雷下载地址:

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz

2 解压:

sudo tar xzvf mysql-boost-5.7.18.tar.gz -C /usr/local/Mysql/

注:稍后我们需要建立/usr/local/mysql,

所以这里要建造一个Mysql,当然建造其他的也可以,

和之后的/usr/local/mysql 能区分开就好

3 先创建用户mysql并将mysql用户添加到mysql组下

groupadd mysql

useradd -g mysql mysql

将解压的文件的权限修改为mysql:mysql

sudo chown mysql:mysql /usr/local/Mysql/mysql-5.7.18

注:创建用户 sudo useradd -M -s /sbin/nologin mysql

4 安装依赖包:

sudo apt install -y build-essential cmake libncurses5-dev bison

编译

1 进入源码解压目录

cd /usr/local/Mysql/mysql-5.7.18/

2 创建编译后的文件存储位置,并进入

(1)sudo mkdir build      //创建build目录

(2)cd build      //进入build目录

3 指定cmake参数

sudo cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql

-DDEFAULT_CHARSET=utf8mb4 .. -DWITH_BOOST=/usr/local/src/mysql-5.7.18/boost/boost_1_59_0

.. -DMYSQL_DATADIR=/data/mysql/data

安装的路径有点坑, 下面这条命令中有两个 ".."

如果不写的话,会提示没有 "/usr/local/mysql"

"/usr/local/Mysql/mysql-5.7.18/boost/boost_1_59_0"

由于对linux还不是特别熟悉,我估计应该是执行cmake时,会从根目录开始找配置的参数目录,

而".."代表根目录

4 sudo make

编译完成之后,和网上视频教程讲述的一致,效果如下:

5 执行 sudo make install

6 检查是否安装成功:

文件编译好之后,就需要安装数据库并执行配置了!

安装Mysql

1 配置环境变量(非必须):

创建变量文件,可以创建在profile,也可以创建在profile.d中

写入配置信息

执行生效环境变量,注意:这一步必须退到根目录下执行,

2 创建配置文件

在mysql的安装目录下创建配置文件目录/etc,

在/etc下创建my.cnf

3 编辑my.cnf

有些目录 /data /log /run 可能没有,则需要手动创建

my.cnf

[client]

[mysqld]

basedir=/usr/local/mysql

# this direct impossible is nothing,we need to build!

datadir=/usr/local/mysql/data

# The document was not informed

socket=/tmp/mysql.sock

character_set_filesystem = utf8mb4

character_set_server = utf8mb4

symbolic-links=0

# run and log is must!

log-error=/usr/local/mysql/log/mysqld.log

pid-file=/usr/local/mysql/run/mysqld.pid

4 将mysql目录下的文件权限,全部赋给mysql,

否则会导致初始化后,/data下没有任何内容

5 进行初始化

sudo /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf

--initialize --user=mysql

6 配置启动服务

7 查询mysql的初始密码,在日志文件中随机生成的;

后面的路径需要注意是自己的

sudo grep 'root'@'localhost' /usr/local/mysql/log/mysqld.log

初始密码:7wff5n<w%j_S

8 修改root密码

ALTER USER root@localhost IDENTIFIED BY 'new password';

9 连接数据库

mysql -h IP地址 -uroot -p 【回车后输密码】

GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;

QQ 群:219537016    虽然没啥人气,群主经常装死中!

同事建立了一个微信讨论群,群主最喜欢能解决问题时,出来冒泡,解决不了时,装死!

 

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

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

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

  2. mysql 在cento下源码安装

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

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

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

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

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

  5. 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 ...

  6. mysql-5.7.14 源码安装笔记

    安装编译 下载源码 mysql-5.7.14.tar.gz 解压定义安装变量 cd /usr/local/src mysql_version="mysql-5.7.14" tar ...

  7. MySQL 5.6.26源码安装

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

  8. mysql 5.7.11 源码安装

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

  9. linux-2.6.18源码分析笔记---信号

    一.相关数据结构及其位置(大致浏览即可,介绍流程时再来仔细看) 1.1 进程描述符struct task_struct所在目录:include\linux\sched.h 关注task_struct中 ...

随机推荐

  1. 一、安装 IntelliJ IDEA

    首先,双击打开 IntelliJ IDEA 的快捷方式: 在此,需要说明: 如果咱们的电脑曾经安装过 IntelliJ IDEA,并且你在卸载 IntelliJ IDEA 的时候没有删除其配置文件目录 ...

  2. 【题解】P1516 青蛙的约会(Exgcd)

    洛谷P1516:https://www.luogu.org/problemnew/show/P1516 思路: 设两只青蛙跳了T步 则A的坐标为X+mT   B的坐标为Y+nT 要使他们相遇 则满足: ...

  3. js标准对象

    在JavaScript的世界里,一切都是对象. 但是某些对象还是和其他对象不太一样.为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串: typeof 123; //'n ...

  4. 轻量ORM-SqlRepoEx (五) 存储过程操作

    .Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵活的Lambda表达式组合,实现 ...

  5. Oracle中的一些查询语句及其执行顺序

    查询条件: 1)LIKE:模糊查询,需要借助两个通配符,%:表示0到多个字符:_:标识单个字符. 2)IN(list):用来取出符合列表范围中的数据. 3)NOT IN(list): 取出不符合此列表 ...

  6. java8新特性学习1

    java8增加了不少新特性,下面就一些常见的新特性进行学习... 1.接口中的方法 2.函数式接口 3.Lambda表达式 4.java8内置的四大核心函数式接口 5.方法引用和构造器引用 6.Str ...

  7. Redis面向java的Client

    一.概念简介: Redis: Redis是一款开源的Key-Value数据库,运行在内存中,由ANSI C编写,详细的信息在Redis官网上面有,因为我自己通过google等各种渠道去学习Redis, ...

  8. [USACO06NOV]玉米田Corn Fields(动态规划,状态压缩)

    题目描述 Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ...

  9. shardedJedisPool工具类

    这里使用的是ShardedJedisPool,而不是RedisTemplate 1.配置文件 <?xml version="1.0" encoding="UTF-8 ...

  10. 如何安全地跨窗体调用Timer控件 从一个窗体调用控制另外一个窗体的控件

    具体的情况是Form1中有一个Timer2时钟,Timer2时钟事件弹出Warning窗体,点击Warning窗体上面的按钮,重新激活一下Form1中的Timer2.从而实现了从一个窗体调用另外一个窗 ...