Mysql 版本选择及下载
当用户计划安装一套MySQL数据库软件时,首先要做的事情通常是去官网下载对应的软件安装包,并在Linux或Windows等主流操作系统平台上实施部署(具体操作步骤可参考官方文档)。在安装之前,强烈建议大家一定要先行确认数据库软件与平台版本的兼容性认证。图5-1所示的是MySQL与操作系统兼容性认证的列表。
注意:软件安装之前进行版本认证,可以尽量避免安装错误、未知Bug等一些比较棘手的问题,详情请参考官方说明https://www.mysql.com/support/supportedplatforms/database.html。
多种平台均可支持MySQL的部署和安装,如Windows、MacOS、Solaris,以及Linux的各种分支或衍生版本。用户也能从MySQL官网上直观地看到这些信息。MySQL支持的操作系统如图5-2所示。
在官网:http://dev.mysql.com/downloads/mysql/中,选择版本进行下载。官网中相应地有三种方式对应的下载链接,其中源码安装,对应"Source Code";二进制安装对应"Linux - Generic",rpm安装则对应于"Red Hat Enterprise Linux / Oracle Linux",如下图所示,
注意:下载完成后记得校验MD5值,防止安装介质损坏。
历史MySQL版本可以在https://downloads.mysql.com/archives/community/中下载,最早版本只能看到5.0.15。
操作系统基础配置
1.关闭系统防火墙和禁用SELINUX策略
1)关闭并禁用系统防火墙,命令如下:
shell> systemctl status firewalld|grep -i "Active:"
Active: active (running) since Thu 2019-10-10 16:59:58 CST; 1 day 18h ago
shell> systemctl stop firewalld
shell> systemctl disable firewalld
2)禁用SELINUX策略,需要重启之后才能生效,也可以使用setenforce命令临时关闭SELINUX,命令如下:
shell> cat /etc/selinux/config|egrep -i "SELINUX=e|SELINUX=p|SELINUX=d"
SELINUX=enforcing
shell> sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
shell> setenforce 0
2.检查CPU、内存和磁盘空间
凡事预则立,不预则废。本着对生产系统运行环境负责的态度,在部署环境之前,我们应全面掌握主机的CPU、内存、网络和I/O等硬件配置情况。
检查主机的CPU物理颗数、核数和逻辑线程数:
shell> cat /proc/cpuinfo|grep -i "physical id"|sort|uniq
shell> cat /proc/cpuinfo|grep -i "cores"|uniq
shell> cat /proc/cpuinfo|grep -i "processor"
检查内存和swap交换空间的配置及使用情况:
shell> cat /proc/meminfo|egrep -i "MemTotal|MemFree|MemAvailable|SwapTotal|SwapFree"
shell> free -m
检查磁盘空间配置:
建议存放数据的文件系统格式使用xfs,这种格式比早期的ext4、ext3具有更好的可管理性和可扩展性。
shell> df -hP
3.检查系统时间和时区
shell> date +"%Y-%m-%d %H:%M:%S"
shell> timedatectl|grep -i "Time zone"
配置ntp时钟同步服务。
4.设置mysql系统账户资源限制
1)设置mysql系统账户资源限制,命令如下:
shell> vi /etc/security/limits.conf
mysql soft nproc 2047
mysql hard nproc 16384
mysql soft nofile 1024
mysql hard nofile 65536
2)联机动态生效资源限制,命令如下:
shell> ulimit -Sn 1024
shell> ulimit -Hn 65536
shell> ulimit -Su 2047
shell> ulimit -Hu 16384
注意:mysql系统账户资源限制若要动态生效,则需要使用su命令切入mysql,因此该操作能否成功取决于它的登录shell(命令解析器)。当登录shell为/bin/false或/sbin/nologin时,就意味无法动态生效,建议将其修改为/bin/bash后再进行尝试。用户可以检查/etc/passwd文件,以确认mysql的登录shell。
3)检查资源限制的生效情况,命令如下:
shell> ulimit -a -S|egrep -i "open files|max user processes"
open files (-n) 1024
max user processes (-u) 2047
shell> ulimit -a -H|egrep -i "open files|max user processes"
open files (-n) 65536
max user processes (-u) 16384
4)修改Linux内核中的资源限制。
注意:主机账户资源配置,还依赖于操作系统内核的限制,用户需要确保账户的资源限制值不得超过系统内核的阈值,否则即使将资源限制值设置得再高,实际上也不会生效。如果一定要为账户配置一个很大的限制值,那么请先将对应的内核选项的阈值调大。修改操作系统内核,需要编辑/etc/sysctl.conf文件,并使用sysctl -p命令使之动态生效:
shell> sysctl -a|egrep -w "fs.file-max|kernel.pid_max"
fs.file-max = 807099
kernel.pi