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

 

本文主要介绍MySQL二进制软件包的安装/启动/关闭过程。mysql

也许有人要问为何要选择二进制的安装方式呢?linux

其实答案很简单,官方版本中已经把全部功能都配置好了,咱们能够很方便地拿来使用。sql

官方MySQL有四个版本:GA版本、DMR版本、RC版本和Beta版本。通常状况下,生产环境或者测试环境都数据库

选择GA版本(常规可用的版本,通过bug修复测试过)。vim

下载地址:https://dev.mysql.com/downloads/mysql/api

下载完成之后能够检验一下MD5,我这边以前下载的版本,这边就演示这个命令的使用(md5sum 文件名)
服务器

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

一、安装前系统环境检测

不论是MySQL哪一个版本的安装,为了能够很顺利地把MySQL数据库安装好,作好后期数据库的优化工做,在前期进行Linux的系统检测是十分有必要的。app

1.一、selinux和iptables须要关闭,把SELINUX=disabled,改完重启服务器生效。

我这里没有iptables用的是firewall因此不用关闭iptablesoop

1.二、I/O调度系统默认是cfq模式,这里强烈建议使用deadline模式

查看I/O调度文件:性能

[root@tse2 downloads]# cat /sys/block/sda/queue/scheduler 
noop [deadline] cfq 

1.三、swap分区的设置

swpapiness值的大小对如何使用swap分区有着很大的影响。

它有0和100两个极限值,0表明最大限度地使用物理内存,而后才使用swap分区,这种行为颇有可能致使系统内存溢出,出现OOM的错误,从而致使MySQL被意外kill掉,因此须要谨慎设置。

100则是积极地使用swap分区,而且把内存上面的数据及时搬到swap分区里(不建议)。这里建议你们不分配swap,或者分配4GB的空间就足够了。

如何查看swappiness文件呢?

[root@tse2 grub2]# cat /proc/sys/vm/swappiness
30
[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 = 30

想要修改swappiness的值,编辑/etc/sysctl.conf,加入vm.swappiness的值便可。

1.四、文件系统的选择

这里建议使用xfs文件系统,相比ext4,它更方便管理,支持动态扩容,删除文件也很方便。

1.五、操做系统的限制

先来查看一些当前操做系统的限制状况,使用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           65535
*               hard    nproc           65535
*               soft    nofile          65535
*               hard    nofile          65535

1.六、numa须要关闭

简单来说关闭numa功能,能够更好地分配内存,不须要采用swap的方式来获取内存。

由于有经验的系统管理员和DBA都知道使用swap致使的数据库性能降低有多么的恶心。

关闭方式也分在BIOS、操做系统中关闭,或者是在数据库启动过程当中关闭。

[root@tse2 bin]# numa --interleave=all /mysql/app/bin/mysqld_safe -defaults-file=/etc/my.conf &

二、MySQL5.7版本安装过程

检查完操做系统环境后,进入MySQL安装阶段,总结为“三部曲+一步走”的方式。

2.一、第一部曲

建立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软件包,命令以下:

[root@tse2 downloads]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

须要对MySQL目录受权:

[root@tse2 downloads]# chown -R mysql:mysql /mysql

2.二、第二部曲

建立MySQL数据库的数据目录(datadir),这里能够选择建立在/mysql/下面:

[root@tse2 downloads]# mkdir -p /mysql/data

也要对数据目录受权:

[root@tse2 downloads]# chown -R mysql:mysql /mysql/data

2.三、第三部曲

因为是二进制的安装方式,这里的数据库配置文件须要本身配置好,到此完成最后一部曲

my.cnf配置文件下载地址:https://files.cnblogs.com/files/Sungeek/Tsemy.7z

密码:tse

2.四、最后一步

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 = '123456';
mysql>ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
mysql>flush privileges;

以上就是MySQL5.7版本的安装启动方式和系统优化的部分优化说明。

相关文章
相关标签/搜索