mysql学习2:第二章:mysql安装启动和关闭——安装前检查-创新互联

1.1.   下载安装包

官方地址:www.mysql.com

创新互联成都网站建设定制网站设计,是成都网站营销推广公司,为成都办公空间设计提供网站建设服务,有成熟的网站定制合作流程,提供网站定制设计服务:原型图制作、网站创意设计、前端HTML5制作、后台程序开发等。成都网站推广热线:028-86922220

下载版本:Mysql Community Server,平台Linux-Generic x86-64bit。

下载安装包mysql 5.6  mysql5.7

下载后进行通过md5校验安装包:md5sum filename

2018.11.3当前官网最新版本:

mysql 5.7.24

mysql 5.6.42

 

版本安装区别:

mysql 5.7之前版本在数据库初始化过程中需要借助于/usr/local/mysql/scripts/mysql_install_db命令,但在mysql 5.7后mysql_install_db被废弃了。

1.2.   安装前系统环境检测

由于书中未制定操作系统平台,这里选用centos7.4_x64。

[root@localhost ~]# cat /etc/centos-release

CentOS Linux release 7.4.1708 (Core)

ip地址设置为192.0.2.10 

 

1.2.1.   卸载原系统带的MariaDB

CentOS7默认安装MariaDB而不是MySQL,而且yum服务器上也移除了MySQL相关的软件包。因为MariaDB和MySQL可能会冲突,故先卸载MariaDB。

 

记得一定要先卸载,不然会出现包冲突的问题。

需要将系统自带的mariadb-lib卸载

# rpm -qa | grep -i mariadb

mariadb-5.5.56-2.el7.x86_64

mariadb-server-5.5.56-2.el7.x86_64

mariadb-libs-5.5.56-2.el7.x86_64

 

[root@localhost ~]# rpm -e --nodeps mariadb

[root@localhost ~]# rpm -e --nodeps mariadb-server

[root@localhost ~]# rpm -e --nodeps mariadb-libs

 

1.2.2.   关闭selinux、iptables、firewall

关闭selinux

/etc/sysconfig/selinux  

关闭iptables

chkconfig --list|grep iptables

chkconfig iptables off

关闭防火墙

Centos7中防火墙变为了firewall,所以千万不要在使用iptable去关闭了。

1 查看防火墙状态

# firewall-cmd --state

running

2 果然是运行的,于是就想disabled防火墙服务

# systemctl mask firewalld

ln -s '/dev/null' '/etc/systemd/system/firewalld.service'

3 然后关闭防火墙

# systemctl stop firewalld

4 最后检查防火墙服务,发现已经关闭了

# firewall-cmd --state

not running

 

1.2.3.   IO调度系统模式修改

将IO调度系统设置为deadline模式

本系统查看

[root@localhost ~]# cat /sys/block/sda/queue/scheduler

noop [deadline] cfq

更改IO系统调度的方法根据系统不同,本次没有测试。

 

关于IO调度

具体参考:/tupian/20230522/

总结:

1、CFQ和DEADLINE考虑的焦点在于满足零散IO请求上。对于连续的IO请求,比如顺序读,并没有做优化。为了满足随机IO和顺序IO混合的场景,Linux还支持ANTICIPATORY调度算法。ANTICIPATORY的在DEADLINE的基础上,为每个读IO都设置了6ms的等待时间窗口。如果在这6ms内OS收到了相邻位置的读IO请求,就可以立即满足。

IO调度器算法的选择,既取决于硬件特征,也取决于应用场景。

在传统的SAS盘上,CFQ、DEADLINE、ANTICIPATORY都是不错的选择;对于专属的数据库服务器,DEADLINE的吞吐量和响应时间都表现良好。

然而在新兴的固态硬盘比如SSD、Fusion IO上,最简单的NOOP反而可能是最好的算法,因为其他三个算法的优化是基于缩短寻道时间的,而固态硬盘没有所谓的寻道时间且IO响应时间非常短。

2、对于数据库应用, Anticipatory Scheduler 的表现是最差的。Deadline 在 DSS 环境表现比 cfq 更好一点,而 cfq 综合来看表现更好一些。这也难怪 RHEL默认的 IO 调度器设置为 cfq。

1.2.4.   swap分区设置

swapiness值在0和100之间,0代表大下怒使用物理内存,然后使用SWAP分区。100则积极使用swap分区,把内存数据库及时搬到swap分区下。

查看本系统;

[root@localhost ~]# cat /proc/sys/vm/swappiness

30

如需更改,编辑/etc/sysctl.conf,加入vm.swappiness的值即可。

 

1.2.5.   文件系统

建议使用XFS文件系统,相比ext4,更加方便管理,支持动态扩容, 删除文件也方便。

具体参考:/tupian/20230522/

1.2.6.   操作系统限制

unlimit -a 查看参数

 

[root@localhost ~]# ulimit -a

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 7165

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

pipe size            (512 bytes, -p) 8

POSIX message queues     (bytes, -q) 819200

real-time priority              (-r) 0

stack size              (kbytes, -s) 8192

cpu time               (seconds, -t) unlimited

max user processes              (-u) 7165

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

 

open_files    默认1024,表示单个进程最多可以访问1024各文件句柄。系统链接或表过多,会出现打不开或者范围内不了的情况。

max user processes    默认7185,连接数。

修改/etc/security/limits.conf,加入限制的相关内容,后重启系统。

*      hard nproc     65535

*      soft    nproc   65535

*      soft    nofile   65535

*      hard    nofile   65535

 

1.2.7.   numa需要关闭

具体参考:/tupian/20230522/

 

关闭numa功能,可以更好分配内存,不需要采用哦个seap方式来获取内存。

关闭方式分在BIOS、操作系统给中关闭,或者在数据库启动过程关闭。

 

numa --interleave=all /usr/loal/mysql/bin/mysqld_safe -defaults-file=/etc/my.cnf &

 

非一致存储访问结构 (NUMA : Non-Uniform Memory Access) 也是最新的内存管理技术。它和对称多处理器结构 (SMP : Symmetric Multi-Processor) 是对应的。

MySQL单机单实例,建议关闭NUMA,关闭的方法有三种:

1.硬件层,在BIOS中设置关闭;

2.OS内核,启动时设置numa=off;

3.可以用numactl命令将内存分配策略修改为interleave(交叉)


网站标题:mysql学习2:第二章:mysql安装启动和关闭——安装前检查-创新互联
标题URL:http://azwzsj.com/article/eihgp.html