墨墨导读:良好的开端是成功的一半,从MySQL安装开始。
学习数据库技术,实际动手的第一步是安装自己的MySQL。MySQL方面也提供多样式的安装方式rpm ,tar ,源码包。当安装完投入使用之后,随着业务量,数据量的增加,往往会碰到很多意向不到的问题。如性能,安全,配置不合理等。对于最佳实践,都应该注意哪些。
1. MySQL 安装部署流程
1. 操作系统
Selinux:建议关闭SELinux功能,通过MySQL本身进行安全控制
Firewalld Iptable:防火墙肯定要设置 或则 关闭
时区:对于系统的来说 时间是非常重要指标
网络配置:高配置机器,网卡MTU提高,建议将私网网卡的MTU值增加到9000,同时启用私网交换机的Jumbo Frame属性。
磁盘格式:在平均文件较小,并发较小的IO场景,ext4和xfs表现差不多,前者略微胜出。当文件较大,并发较大时,xfs比ext4性能更好,同时更稳定。实际使用上来说,一般数据库的文件系统推荐用xfs。xfs的恢复比较麻烦,,这方面ext4的fschk修复成功率较高,而且ext4的社区支持比较完备。
盘调度算法:默认是使用的CFQ算法,对于数据库专用服务器,如果为机械磁盘,建议将磁盘调度算法调整为deadline模式,如果为固态硬盘,调整为noop模式,以提升I/O吞吐量和降低I/O响应时间。
虚拟内存使用策略:vm.swappiness,以提高mysql对内存的使用效率
资源限制:limits.conf的 nproc nofile
内核参数:net.ipv4.tcp 相关的
信号量:对应InnoDB: a long semaphore wait
2. MYSQL软件安装
下载版本:一定是官方下载,应用测试过兼容的版本
安装依赖:mysql执行依赖包
安装部署:建议tar.gz包
3. MYSQL软件安装
用户:安全考虑
数据目录:便于管理 提升io性能
权限赋予:赋予特定用户权限 执行权限
my.cnf配置:按照硬件配置,合理的配置
4. MYSQL初始化
初始化:初始化系统数据
密码:密码修改,不安全账号删除
第三方工具:pt-toolkit,xtrabackup 等常用运维工具
2. MySQL 一键式部署脚本
基于5.7.32编写的自动安装部署脚本。操作系统方面只加了资源添加部分。
Vim MySQL_AutoSetup .sh
3.总结
良好的开端是成功的一半,MySQL是轻量级数据,安装部署也需要学问,粗略的安装往往会导致后期的一些各种大小问题。考虑的越周全,走的越远。