Linux下通过二进制方式安装mysql5.7版本和系统优化

本文主要介绍MySQL二进制软件包的安装/启动/关闭过程。
也许有人要问为什么要选择二进制的安装方式呢?
其实答案很简单,官方版本中已经把所有功能都配置好了,我们可以很方便地拿来使用。
官方MySQL有四个版本:GA版本、DMR版本、RC版本和Beta版本。一般情况下,生产环境或者测试环境都
选择GA版本(常规可用的版本,经过bug修复测试过)。
下载地址:https://dev.mysql.com/downloads/mysql/
下载完成以后可以检验一下MD5,我这边之前下载的版本,这边就演示这个命令的使用(md5sum 文件名)

[root@tse2 downloads]# md5sum mysql-5.7.-linux-glibc2.-x86_64.tar.gz
d903d3dbf235b74059a4b3e216c71161 mysql-5.7.-linux-glibc2.-x86_64.tar.gz

1、安装前系统环境检测
不管是MySQL哪个版本的安装,为了可以很顺利地把MySQL数据库安装好,做好后期数据库的优化工作,在前期进行Linux的系统检测是十分有必要的。
1.1、selinux和iptables需要关闭,把SELINUX=disabled,改完重启服务器生效。

我这里没有iptables用的是firewall所以不用关闭iptables

1.2、I/O调度系统默认是cfq模式,这里强烈建议使用deadline模式
查看I/O调度文件:

[root@tse2 downloads]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
1.3、swap分区的设置
swpapiness值的大小对如何使用swap分区有着很大的影响。
它有0和100两个极限值,0代表最大限度地使用物理内存,然后才使用swap分区,这种行为很有可能导致系统内存溢出,出现OOM的错误,从而导致MySQL被意外kill掉,所以需要谨慎设置。
100则是积极地使用swap分区,并且把内存上面的数据及时搬到swap分区里(不建议)。这里建议大家不分配swap,或者分配4GB的空间就足够了。
如何查看swappiness文件呢?

[root@tse2 grub2]# cat /proc/sys/vm/swappiness [root@tse2 grub2]# sysctl -a|grep swap
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.ens192.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.swappiness =
想要修改swappiness的值,编辑/etc/sysctl.conf,加入vm.swappiness的值即可。
1.4、文件系统的选择
这里建议使用xfs文件系统,相比ext4,它更方便管理,支持动态扩容,删除文件也很方便。
1.5、操作系统的限制
先来查看一些当前操作系统的限制情况,使用ulimit -a查看:

这里标记了两个最为重要的参数,一个叫open files,另一个叫max user processes。
open files如果设置不合理,而当前服务器的连接过多或者表过多时,就有可能会出现打不开表或者访问不了表的现象。
默认情况下,Linux最大句柄数为1024个,表示单个进程最多可以访问1024个文件句柄。如要超过默认值,就会出现文件句柄超限的错误”too many open files“。
max user processes参数的用途:有时候我们可能会跑很多实例,但是发现创建不了新的连接,报出“resource temporarily unavailable”的错误,表示没有足够的资源。
为了防止以上两种报错情况,我们可以修改系统的软硬限制。编辑/etc/security/limits.conf,加入限制的相关内容。记得更改完内容之后,需要重启操作系统才能生效。
[root@tse2 grub2]# vim /etc/security/limits.conf
* soft nproc
* hard nproc
* soft nofile
* hard nofile

1.6、numa需要关闭
简单来讲关闭numa功能,可以更好地分配内存,不需要采用swap的方式来获取内存。
因为有经验的系统管理员和DBA都知道使用swap导致的数据库性能下降有多么的恶心。
关闭方式也分在BIOS、操作系统中关闭,或者是在数据库启动过程中关闭。
[root@tse2 bin]# numa --interleave=all /mysql/app/bin/mysqld_safe -defaults-file=/etc/my.conf &
2、MySQL5.7版本安装过程
检查完操作系统环境后,进入MySQL安装阶段,总结为“三部曲+一步走”的方式。
2.1、第一部曲
创建MySQL用户,指定MySQL所在的用户组,命令如下:
[root@tse2 /]# groupadd mysql
[root@tse2 /]# useradd -g mysql mysql -s /sbin/nologin
软件包的家目录(basedir)我这边是习惯统一放在/data/downloads下面:
[root@tse2 downloads]# pwd
/data/downloads
创建下列目录:
安装目录:/mysql/app
配置目录:/mysql/config
数据目录:/mysql/data
日志目录:/mysql/logs
备份目录:/mysql/backup
临时目录:/mysql/tmp
#tmp目录主要放sock和pid文件
[root@tse2 downloads]# mkdir -p /mysql/{app,config,data,logs,backup,tmp}
也要对MySQL目录授权:
[root@tse2 downloads]# chown -R mysql:mysql /mysql/
需要解压MySQL软件包,命令如下:
[root@tse2 downloads]# tar -zxvf mysql-5.7.-linux-glibc2.-x86_64.tar.gz -C /mysql/app/
移动包文件到/mysql/app/目录
[root@tse2 app]# mv /mysql/app/mysql-5.7.-linux-glibc2.-x86_64/* ./
删除mysql-5.7.23-linux-glibc2.12-x86_64目录
[root@tse2 app]# rm -rf /mysql/app/mysql-5.7.-linux-glibc2.-x86_64
2.3、第二部曲
由于是二进制的安装方式,这里的数据库配置文件需要自己配置好,到此完成最后一部曲
my.cnf配置文件下载地址:https://files.cnblogs.com/files/Sungeek/my.7z
密码:tse
2.4、最后一步
mysqld命令初始化数据库:
[root@tse2 mysql]# /mysql/app/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/mysql/app --datadir=/mysql/data/ --user=mysql --initialize
注:如果在初始化过程中加上--initialize参数,表示会生成一个临时的数据库初始化密码,
记录在log-error(错误日志)里面,如果加上--initialize-insecure参数,代表无密码进入。建议使用生成初始化密码的方式!
启动数据库后台运行:
[root@tse2 mysql]# /mysql/app/bin/mysqld_safe --defaults-file=/etc/my.cnf & #后台运行
数据库启动成功之后,进入数据库的初始化密码会在/mysql/logs/error.log下面:
[root@tse2 logs]# cat /mysql/logs/error.log |grep password
使用初始化密码进入数据库之后,需要修改数据库root密码,设置为永不过期:
/mysql/app/bin/mysql -uroot -p
mysql>SET PASSWORD = '';
mysql>ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql>flush privileges;
或者下面命令:
/mysql/app/bin/mysql -uroot -p
mysql>alter user root@localhost identified by '';
mysql>flush privileges;
以上就是MySQL5.7版本的安装启动方式和系统优化的部分优化说明。
Linux下通过二进制方式安装mysql5.7版本和系统优化的更多相关文章
- Linux下通用二进制方式安装MySQL
1.下载glibc版本的MySQL: https://downloads.mysql.com/archives/community/ 2.查看mysql用户和mysql组是否存在(用户和组的信息存在/ ...
- 关于centos7中使用rpm方式安装mysql5.7版本后无法使用root登录的问题
最近在centos7中通过rpm方式安装了最新版本的mysql-server 5.7 (mysql57-community-release-el7-7.noarch.rpm) ,发现安装成功后无法使用 ...
- Linux下基于源代码方式安装MySQL 5.6
MySQL为开源数据库,因此能够基于源代码实现安装.基于源代码安装有很多其它的灵活性. 也就是说我们能够针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码.依据不同的软件平台环境调整相关的编译 ...
- 离线环境下使用二进制方式安装配置Kubernetes集群
本文环境 Redhat Linux 7.3,操作系统采用的最小安装方式. Kubernetes的版本为 V1.10. Docker版本为18.03.1-ce. etcd 版本为 V3.3.8. 1. ...
- [转]在ubuntu linux下以编译方式安装LAMP(apache mysql php)环境
FROM : http://www.cnblogs.com/eleganthqy/archive/2010/02/28/1675217.html 最近转向到了使用ubuntu做桌面,安装好系统以来一直 ...
- CentOS6.5和RedHat6.5下以rpm方式安装mysql-5.6.20
转帖;http://blog.csdn.net/mw08091020/article/details/39234207 a.检查下linux是不是已经安装了mysql rpm -qa | grep - ...
- 二进制方式安装mysql5.7.24
1.实验环境 [root@test-mysql ~]# cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) 2.浏览器下载mysq ...
- 基于通用二进制方式安装MySQL-5.7.24(比源码安装MySQL快许多)及破密码
确保系统中有依赖的libaio软件 yum -y install libaio 使用wget命令下载mysql-5.7.24软件包 wget http://mirrors.sohu.com/mysql ...
- Linux下用rpm方式安装MySQL
1.MySQL下载地址. www.mysql.com/downloads/mysql-4.0.html 下载MySQL 5.1版本的2个包(根据你的实际需求下载所需要的包): MySQL-server ...
随机推荐
- Android studio 连接真机
首先用数据线连接真机 1.打开开发者模式(小米手机mix2s为例 设置->我的设备->全部参数->连续点击MIUI版本——开启成功) 2.在更多设置中找到系统安全设置——允许安装未知 ...
- 【java面试】算法篇之堆排序
一.堆的概念 堆是一棵顺序存储的完全二叉树.完全二叉树中所有非终端节点的值均不大于(或不小于)其左.右孩子节点的值. 其中每个节点的值小于等于其左.右孩子的值,这样的堆称为小根堆: 其中每个节点的值大 ...
- (转自360安全客)深入理解浏览器解析机制和XSS向量编码
(译者注:由于某些词汇翻译成中文后很生硬,因此把相应的英文标注在其后以便理解.这篇文章讲的内容很基础,同时也很重要,希望对大家有所帮助.) 这篇文章将要深入理解HTML.URL和JavaScript的 ...
- 用JAVA分别实现WebSocket客户端与服务端
最近公司在搞一个项目刚好需要用到WebSocket技术来实现实时数据的传输,因为之前也没接触过,所以捣鼓了好些天,最近恰巧有空就写写.有误的地方还请大牛们能及时指正. 项目背景:基于spring+sp ...
- 《即时消息技术剖析与实战》学习笔记9——IM系统如何支持消息的多终端漫游
一.什么是多终端漫游 多终端漫游是指:用户在任意一个设备登录后,都能获取到历史的聊天记录.如:QQ 默认漫游 7 天的聊天记录,开通 VIP 会员可漫游 30 天,开通 SVIP 会员可漫游 2 年. ...
- supervisor守护filebeat服务进程
1.变更原因 部署安装supervisor进行filebeat守护及后面的各种服务进程守护可以用2.变更内容增加supervisor服务 3.变量时间:6月2号-6月3号4.变更风险评估:无风险4.1 ...
- IntelliJ IDEA的这个接口调试工具真是太好用了!
你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...
- 6.场景4:使用VRRP(L3HA)和Open vSwitch提供高可用性
此场景描述了使用ML2插件和Open vSwitch(OVS)实现OpenStack网络服务的高可用性实现. 该高可用性实施方案增加了以下情景:带有虚拟路由器冗余协议(VRRP)的Open vSwit ...
- [实用分享]Kindle电子书格式AZW3转换为MOBI
[实用分享]Kindle电子书格式AZW3转换为MOBI 思路:先拆解成源文件再转换成 MOBI 推荐首选这种方法.此方法的思路是,首先用 KindleUnpack 把 azw3 文件拆解成源文件,然 ...
- Codeforces_734_E
http://codeforces.com/problemset/problem/734/E 每次操作可以把连通的同颜色的点全部换颜色,缩点,找直径,第一遍dfs找起点,第二遍dfs求直径. #inc ...