一、安装前环境准备
1.1 系统兼容性检查
MySQL 8.0.20支持主流Linux发行版(CentOS 7+/Ubuntu 18.04+)、Windows 10/Server 2016及以上版本,以及macOS 10.14+。建议使用64位系统以获得最佳性能,内存建议不低于4GB(开发环境)或16GB(生产环境)。
1.2 依赖项安装
Linux系统需预先安装libaio、numactl等基础库:
# CentOS/RHEL系统sudo yum install -y libaio numactl# Debian/Ubuntu系统sudo apt-get install -y libaio1 libnuma1
Windows系统需确保已安装最新版Visual C++ Redistributable,可从微软官方文档链接获取安装包。
1.3 防火墙配置
开放3306端口(默认MySQL端口)并配置访问控制:
# Linux防火墙规则示例sudo firewall-cmd --zone=public --add-port=3306/tcp --permanentsudo firewall-cmd --reload
生产环境建议结合安全组规则限制源IP范围,仅允许应用服务器访问。
二、安装包获取与验证
2.1 官方渠道获取
通过托管仓库链接下载对应操作系统的安装包,推荐选择mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz(Linux)或mysql-8.0.20-winx64.zip(Windows)等标准版本。
2.2 完整性验证
使用SHA256校验和确保文件完整性:
# Linux校验示例sha256sum mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz# 对比官网公布的校验值
Windows用户可通过PowerShell的Get-FileHash命令进行验证。
三、分平台安装指南
3.1 Linux系统安装
3.1.1 解压安装
# 创建专用用户和目录sudo groupadd mysqlsudo useradd -r -g mysql -s /bin/false mysqlsudo mkdir /var/lib/mysqlsudo chown mysql:mysql /var/lib/mysql# 解压安装包tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xzsudo mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
3.1.2 初始化数据库
cd /usr/local/mysqlsudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql# 记录生成的临时密码(末尾的随机字符串)
3.1.3 配置服务
创建systemd服务文件/etc/systemd/system/mysqld.service:
[Unit]Description=MySQL ServerAfter=network.target[Service]User=mysqlGroup=mysqlExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnfLimitNOFILE=5000LimitNPROC=5000[Install]WantedBy=multi-user.target
3.2 Windows系统安装
3.2.1 图形化安装
- 解压ZIP包至
C:\mysql-8.0.20 - 创建
my.ini配置文件:[mysqld]basedir=C:/mysql-8.0.20datadir=C:/mysql-8.0.20/dataport=3306
- 以管理员身份运行CMD,执行:
cd C:\mysql-8.0.20\binmysqld --initialize --console# 记录临时密码mysqld --installnet start mysql
3.3 配置文件优化
生产环境建议配置以下关键参数:
[mysqld]# 性能调优innodb_buffer_pool_size=4G # 占总内存50-70%innodb_log_file_size=512Mmax_connections=500# 安全配置default_authentication_plugin=mysql_native_password # 兼容旧客户端skip_name_resolve=ON # 禁用DNS反向解析
四、安装后关键操作
4.1 安全初始化
运行安全脚本修改root密码并移除匿名账户:
/usr/local/mysql/bin/mysql_secure_installation# 或Windows下的mysql_secure_installation.bat
4.2 创建专用用户
CREATE USER 'app_user'@'%' IDENTIFIED BY 'StrongPassword123!';GRANT SELECT,INSERT,UPDATE,DELETE ON app_db.* TO 'app_user'@'%';FLUSH PRIVILEGES;
4.3 日志配置
启用慢查询日志和通用查询日志:
[mysqld]slow_query_log=1slow_query_log_file=/var/log/mysql/mysql-slow.loglong_query_time=2general_log=0general_log_file=/var/log/mysql/mysql-general.log
五、常见问题解决方案
5.1 初始化失败处理
若遇到[ERROR] [MY-010457] [Server] --initialize specified but the data directory exists错误,需先清空数据目录:
sudo rm -rf /var/lib/mysql/*# 重新执行初始化命令
5.2 端口冲突解决
使用netstat -tulnp | grep 3306检查端口占用,修改MySQL配置中的port参数或终止冲突进程。
5.3 性能基准测试
使用sysbench进行压力测试:
sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 \--mysql-port=3306 --mysql-user=root --mysql-password=your_password \--mysql-db=test_db --tables=10 --table-size=1000000 preparesysbench oltp_read_write run
六、生产环境建议
- 高可用架构:考虑使用主从复制或集群方案
- 备份策略:实施每日全量备份+增量备份机制
- 监控告警:集成日志服务监控关键指标(如连接数、QPS、慢查询)
- 定期维护:每月执行
ANALYZE TABLE更新统计信息,每季度优化表
通过以上步骤,开发者可完成MySQL 8.0.20的标准化安装与基础配置。建议参考官方文档链接获取最新参数说明,并根据实际业务负载持续优化配置。