墨墨导读:良好的开端是成功的一半,从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
#!/bin/bash#####MySQL5.7.32数据库自动安装脚本# Version: 1.0# Author: kevinCUI# Date: 2020-12-31######mysql 安装包的绝对路径,去掉.tar.gztarGzPath=/opt/idc/tarGzFile=mysql-5.7.32-linux-glibc2.12-x86_64#mysql 安装路径installPath=/home/mysql/#my.cnf配置文件mysqlcnf=/home/mysql/my.cnf#mysql serverid需要设置唯一的id,比如 ip+3位数字mysqlServerid=1010101#mysql 密码(不可擅自修改)defaultPwd=123456#mysql 端口mysqlPort=3306#mysql数据目录data_default=${installPath}${mysqlPort}data_datadir=${data_default}/datadata_binlog=${data_default}/binlogdata_dbdata=${data_defa