十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
官方地址:www.MySQL.com
创新互联建站主营武都网站建设的网络公司,主营网站建设方案,app软件定制开发,武都h5微信平台小程序开发搭建,武都网站营销推广欢迎武都等地区企业咨询
下载版本: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被废弃了。
由于书中未制定操作系统平台,这里选用centos7.4_x64。
[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
ip地址设置为192.0.2.10
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
关闭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
将IO调度系统设置为deadline模式
本系统查看
[root@localhost ~]# cat /sys/block/sda/queue/scheduler
noop [deadline] cfq
更改IO系统调度的方法根据系统不同,本次没有测试。
关于IO调度
具体参考:http://blog.itpub.net/29519108/viewspace-2218623/
总结:
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。
swapiness值在0和100之间,0代表最大下怒使用物理内存,然后使用SWAP分区。100则积极使用swap分区,把内存数据库及时搬到swap分区下。
查看本系统;
[root@localhost ~]# cat /proc/sys/vm/swappiness
30
如需更改,编辑/etc/sysctl.conf,加入vm.swappiness的值即可。
建议使用XFS文件系统,相比ext4,更加方便管理,支持动态扩容, 删除文件也方便。
具体参考:http://blog.itpub.net/29519108/viewspace-2218624/
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
具体参考:http://blog.itpub.net/29519108/viewspace-2218625/
关闭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(交叉)