小编给大家分享一下Linux下二进制方式如何安装mysql5.7版本和系统优化,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
也许有人要问为什么要选择二进制的安装方式呢?
其实答案很简单,官方版本中已经把所有功能都配置好了,我们可以很方便地拿来使用。
官方MysqL有四个版本:GA版本、DMR版本、RC版本和Beta版本。一般情况下,生产环境或者测试环境都
选择GA版本(常规可用的版本,经过bug修复测试过)。
下载地址:https://dev.MysqL.com/downloads/MysqL/
下载完成以后可以检验一下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
1、安装前系统环境检测
不管是MysqL哪个版本的安装,为了可以很顺利地把MysqL数据库安装好,做好后期数据库的优化工作,在前期进行Linux的系统检测是十分有必要的。
1.1、selinux和iptables需要关闭,把SELINUX=disabled,改完重启服务器生效。
我这里没有iptables用的是firewall所以不用关闭iptables
1.2、I/O调度系统默认是cfq模式,这里强烈建议使用deadline模式
[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的空间就足够了。
[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 = 30
想要修改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 65535 * hard nproc 65535 * soft nofile 65535 * hard nofile 65535
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、第一部曲
[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.2、第二部曲
创建MysqL数据库的数据目录(datadir),这里可以选择创建在/MysqL/下面:
[root@tse2 downloads]# mkdir -p /MysqL/data
也要对数据目录授权:
[root@tse2 downloads]# chown -R MysqL:MysqL /MysqL/data
2.3、第三部曲
由于是二进制的安装方式,这里的数据库配置文件需要自己配置好,到此完成最后一部曲
my.cnf配置文件下载地址:https://files.cnblogs.com/files/Sungeek/Tsemy.7z
密码:tse
2.4、最后一步
[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
什么是Linux系统
Linux是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多cpu的操作系统,使用Linux能运行主要的Unix工具软件、应用程序和网络协议。
看完了这篇文章,相信你对“Linux下二进制方式如何安装MysqL5.7版本和系统优化”有了一定的了解,如果想了解更多相关知识,欢迎关注编程之家行业资讯频道,感谢各位的阅读!