安装前的环境准备 linux 环境准备

内核参数建议值

1.调整最大文件数限制

直接执行 ulimit -n 65535

或写入/etc/sysctl.conf  重启后生效

2.修改IO 调度器设置

io 调度器修改为deadline,如果是SSD 或者PCle-SSD设备,则修改为noop,下列两种方式修改:

a) 在线动态修改,重启失效

echo "deadline" > /sys/block/sda/queue/scheduler   ,此处sda 修改为实际的设备名称,例如 sdb,sdc

b)修改/etc/grub.conf, 永久生效

修改/etc/grub.conf 配置文件,在kernel 那行增加一个配置,例如

最后,查看核实下IO 调度器的配置,例如

cat /sys/block/sda/queue/scheduler

noop anticipatory [deadline] cfq

3.修改swappiness 设置

vm.swappiness=0

并将该设置写入/etc/sysctl.conf,重启后也能生效

swappiness 是linux的一个内核参数,用来控制 Linux 物理RAM 内存进行SWAP页交换的相对权重

尽量减少系统的页缓存被从内存中清除的情况.取值范围是0~100,

vm.swappiness 的值越低,linux内核会尽量不进行swap交换页的操作,vm.swappines的值越高,linux会越多的使用SWAP空间

linux系统默认值是60,当系统需要内存时,有60%的概率使用swap 对于大多数桌面系统,设置为100 可以提高系统的整体性能

对于数据库服务器,设置为0,可以提高物理内存的使用率,进而提高数据库服务的响应性能

需要注意的是:  RHEL7以上的版本 vm.swappines=0 有可能会由于OOM问题,导致mysqld 进行被OOM-KIller 进程杀掉

4.关闭NUMA特性

新一代架构的NUMA 不适用于跑数据库的场景.它本意是为了提高内存利用率,但实际效果不好

,反而可能导致一个cpu 的内存尚有剩余,但是另一个不够用,发生SWAP 的问题,因此建议直接关闭或者修改NUMA 的调度机制

a)修改/etc/grub.conf 关闭NUMA 重启后生效

修改/etc/grub.conf 配置文件,在kernel 那行增加一个配置后重启生效,例如

5.关闭cpu节能模式

cpu 启用节能模式后,会节约电量,但也可能带来cpu性能下降的问题.因此,运行数据库类业务时,

建议关闭节能模式,发挥cpu最大性能

1.首先获取mysql安装包 ,我们这里安装的是mysql5.7.17版本

打开官方 MySQL 官方网站 https://downloads.mysql.com/archives/community/

选择相应的版本 如下图所示

我这里将 mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 放在了 /data/ 目录下

2. 将mysql解压到 /opt/mysql 下   (没有则创建,也可以定义自己需要的目录)

cd /opt/

mkdir mysql

cd mysql

tar zxvf  /data/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

3.创建一个软连接

cd /usr/local

ln -s /opt/mysql-5.7.17-linux-glibc2.5-x86_64  mysql

4.创建用户

groupadd mysql

useradd -g  mysql -s /sbin/nologin -d /usr/local/mysql  mysql

5.定义基本的配置文件 my.cnf   (根据自身需要的环境配置,并将配置好的文件放在/etc/my.cnf  下)  以下给出部分需要定义的目录,有些需要自己定义的参数根据具体情况定制

basedir = /usr/local/mysql        安装目录
datadir = /data/mysql/mysql3306/data          数据目录

socket = /tmp/mysql3306.sock                      套接字文件

tmpdir = /data/mysql/mysql3306/tmp            临时目录

log-bin = /data/mysql/mysql3306/logs/mysql-bin       二进制日志目录

6.基于我们的配置文件定的环境 创建基本目录

mkdir  /data/mysql     创建数据目录

mkdir /data/mysql/mysql3306

cd /data/mysql/mysql3306

mkdir data

mkdir logs

mkdir tmp

chown -R mysql:mysql /data/mysql/mysql3306

7.MySQL 初始化 (根据mysql官方文档指定初始化方式 默认会找/etc/my.cnf 如果不指定的话)

cd /usr/local/mysql

shell> bin/mysql_install_db --user=mysql          # MySQL 5.7.5

shell> bin/mysqld --initialize --user=mysql         # MySQL 5.7.6 and up

shell> bin/mysql_ssl_rsa_setup                         # MySQL 5.7.6 and up

ps: 根据官方文档说明

如果缺少了 libaio  包 会报错误 ,导致无法初始化 成功 并且 需要注意  /data/mysql 目录是否正确授予 权限 用户和 组

缺少包  即可 使用  yum install  libaio  再重新初始化

8.创建启动脚本

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

echo "export PATH=$PATH:/usr/local/mysql/bin"  >> /etc/profile          写入环境变量

source /etc/profile

9.启动或者关闭MySQL

/etc/init.d/mysql  start|stop|restart

linux 下安装mysql5.7.17的更多相关文章

  1. linux下安装mysql5.7.17及简单配置

    原文:http://www.th7.cn/db/mysql/201612/218745.shtml 1.mysql5.7.17安装在/usr/local/mysql目录里面,也可以安装在其他地方 (安 ...

  2. Linux下安装mysql5.7

    Linux下安装mysql5.7   首先准备好mysql5.7.17的安装包,安装包放在  /data/software 目录下 进入到 /usr/local 目录下,解压mysql安装包 命令: ...

  3. Linux下安装mysql5.6.11(找点有用的信息太费劲)(转)

    Linux下安装mysql5.6.11(找点有用的信息太费劲) (2013-04-25 10:25:09)     1.申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务 ...

  4. [转]windows10 64位环境下安装mysql5.7.17

    今天以zip模式在windows10 64位环境下安装mysql5.7,到最后一步提示mysql服务无法启动. 安装步骤如下: 1.配置环境变量 我的电脑->属性->高级->环境变量 ...

  5. linux下安装mysql5.7方法与常见问题

    linux上安装mysql5.7 1.下载tar包,这里使用wget从官网下载 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7 ...

  6. [mysql使用(1)] 64位Linux下安装mysql-5.7.13-linux-glibc2.5-x86_64

    由于公司临时让将Oracle的数据移植到mysql上面,所以让我在公司服务器上面安装一下mysql.下面就是我的安装过程以及一些错误解决思路.其实对于不同版本安装大体都有差不多. 1. 从官网下载 m ...

  7. centos7下安装mysql5.7.17

    约定:本文基于Centos7,Mysql5.7.17,经过博主多次测试成功 1.下载mysql.tar.gz 官网下载MySQL安装包,Linux-Generic 64位(根据系统选择64or32) ...

  8. 64位Linux下安装mysql-5.7.13-linux-glibc2.5-x86_64 || 转载:http://www.cnblogs.com/gaojupeng/p/5727069.html

    由于公司临时让将Oracle的数据移植到mysql上面,所以让我在公司服务器上面安装一下mysql.下面就是我的安装过程以及一些错误解决思路.其实对于不同版本安装大体都有差不多. 1. 从官网下载 m ...

  9. Linux下安装MySQL5.6

    传送门:http://www.jianshu.com/p/f4a98a905011 字数802 阅读164 评论0 喜欢4 环境:1.操作系统:CentOS release 6.8 (Final)2. ...

随机推荐

  1. 标准模板库(STL)学习探究之Multimap容器

    C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素.(具体用法请参考map容器)     函数列表:     begin() 返回指向第一个元素的迭代器      cle ...

  2. HttpClient 之Fluent API 简单使用

    相比于HttpClient 之前的版本,HttpClient 4.2 提供了一组基于流接口(fluent interface)概念的更易使用的API,即Fluent API. 为了方便使用,Fluen ...

  3. java爬取读者文摘杂志

    java爬虫入门实战练习 此代码仅用于学习研究 此次练习选择了读者文摘杂志网站进行文章爬取 练习中用到的都只是一些简单的方法,不过过程中复习了输入流输出流的使用以及文件的创建写入等知识,对自己还是有所 ...

  4. Java中static关键字的定义

    1.static存在的主要意义 static的主要意义是在于创建独立于具体对象的域变量或者方法.以致于即使没有创建对象,也能使用属性和调用方法! static关键字还有一个比较关键的作用就是 用来形成 ...

  5. JavaScript常见设计模式梳理

    单例模式 单例模式,顾名思义就是保证每个类都只有一个实例对象. 其实现思路很简单,先判断实例是否存在,如果不存在则创建新的实例返回,如果存在则直接返回该实例. 策略模式 策略模式可以理解为:封装多个可 ...

  6. leetcode-13双周赛-1257-最小公共区域

    题目描述: 方法: class Solution(object): def findSmallestRegion(self, regions, region1, region2): parent = ...

  7. c#开发应避免的几个小滥用

    一 String和StringBuilder              少量的字符串操作不宜采用StringBuilder.      由于string是不可变得对象,对于string的叠加,每次操作 ...

  8. ArrayList,LinkedList,Vector集合的认识

    最近在温习Java集合部分,花了三天时间读完了ArrayList与LinkedList以及Vector部分的源码.之前都是停留在简单使用ArrayList的API,读完源码看完不少文章后总算是对原理方 ...

  9. 【LeetCode 12】整数转罗马数字

    题目链接 [题解] (涨知识了..原来罗马数字是这么回事.. 把{1,4,5,9,10,40,50,90,100,400,500,900,1000}这些东西的罗马数字放在一个数组里面. 每次从大到小减 ...

  10. Java习题10.24

    Java习题10.24 1. 1,3.connect()与accept():这两个系统调用用于完成一个完整相关的建立,其中connect()用于建立连接.accept()用于使服务器等待来自某客户进程 ...