悠悠楠杉
MysqlLinux安装
一、为什么选择MySQL+Linux组合?
作为最流行的开源数据库(根据DB-Engines 2023排名),MySQL在Linux服务器上的部署占比高达79%。二者结合的优势体现在:
- 性能优化:Linux的EXT4/XFS文件系统对数据库IO有原生优化
- 成本控制:完全免费的LAMP技术栈
- 生态兼容:云服务商(AWS/Azure)的MySQL服务均基于Linux
二、安装前的关键准备
2.1 版本选择建议
- 生产环境:MySQL 8.0(最新LTS版本)
- 旧系统兼容:MySQL 5.7(2023年10月停止维护)
- 特殊需求:Percona Server(替代分支版)
2.2 硬件需求检查
bash
查看内存(建议≥2GB)
free -h
检查磁盘空间(建议≥20GB)
df -h /var
三、分步安装教程(以Ubuntu 22.04为例)
3.1 通过APT源安装
bash
更新软件包索引
sudo apt update
安装MySQL服务端
sudo apt install mysql-server-8.0 -y
验证安装版本
mysql --version
3.2 安全初始化配置
bash
运行安全脚本
sudo mysqlsecureinstallation
典型配置选项参考:
- 设置root密码强度(建议≥12字符)
- 移除匿名用户(选择Y)
- 禁止root远程登录(选择Y)
- 删除测试数据库(选择Y)
- 立即重载权限表(选择Y)
四、CentOS/RHEL系统的特殊处理
4.1 解决MariaDB冲突
bash
先移除预装的MariaDB
sudo yum remove mariadb-libs -y
添加MySQL官方Yum源
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm
4.2 SELinux策略调整
bash
临时设置SELinux为宽松模式
sudo setenforce 0
永久修改需编辑配置文件
sudo vi /etc/selinux/config
五、深度配置优化建议
5.1 关键配置文件(my.cnf)调优
ini
[mysqld]
缓冲池大小(建议物理内存的50-70%)
innodbbufferpool_size = 4G
日志文件配置
slowquerylog = 1
longquerytime = 2
5.2 用户权限管理实战
sql
-- 创建业务用户示例
CREATE USER 'app_user'@'192.168.1.%' IDENTIFIED BY 'ComplexP@ssw0rd!';
-- 精细化授权
GRANT SELECT, INSERT ON shopdb.* TO 'appuser'@'192.168.1.%';
六、常见问题解决方案
6.1 连接数不足报错
bash
查看当前连接数
show status like 'Threads_connected';
修改最大连接数(需重启服务)
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
max_connections = 200
6.2 密码强度策略冲突
sql
-- 临时降低密码策略(测试环境用)
SET GLOBAL validate_password.policy=LOW;
七、监控与维护技巧
推荐工具组合:
- 性能监控:Prometheus + mysqld_exporter
- 日志分析:ELK Stack
- 备份方案:mysqldump + cron定时任务
最佳实践提示:生产环境建议每周执行
mysqlcheck -u root -p --all-databases --optimize
进行数据库维护。遇到复杂问题可查看错误日志定位:sudo tail -100 /var/log/mysql/error.log