MySQL 8.0.20.0 是目前企业级开发和日常运维中使用频率极高的稳定版本。相较于早期的 5.7 系列,它在事务处理效率、JSON 字段支持以及默认安全策略上都有质的飞跃。很多开发者在初次部署时容易卡在环境变量配置或初始化密码环节。下面我们将按照从零开始的标准流程,详细拆解 Windows 和 Linux 双平台的安装方法,确保你能一次性搞定所有配置。
环境准备与安装包下载
正式安装前,请先核对系统版本。Windows 用户推荐 Win10 及以上系统,关闭杀毒软件实时防护可避免拦截后台服务注册。Linux 用户建议使用 CentOS 7.6 或 Ubuntu 20.04 基础镜像。访问 MySQL 官方网站,进入 Community Downloads 专区,筛选出 GA Release 中的 8.0.20 版本。Windows 平台直接下载 zip 归档包,这种免安装版不会写死注册表,卸载干净且便于多版本切换。Linux 平台选择 Generic Linux 对应的 tar.gz 压缩文件,适合通用部署场景。
Windows 系统安装全流程
将压缩包解压至非中文无空格路径,例如 D:\mysql-8.0.20。在该目录下新建文本文件并改名为 my.ini。使用高级文本编辑器打开,写入基础参数。重点配置 basedir 指向解压根目录,datadir 指向同级 data 文件夹,character-set-server 统一设为 utf8mb4,collate-server 设为 utf8mb4_0900_ai_ci。保存后配置系统环境变量,新建 MYSQL_HOME 指向该目录,并在 Path 变量末尾追加 ;%MYSQL_HOME%\bin。打开命令提示符并以管理员身份运行,cd 跳转至 bin 目录,执行 mysqld --initialize-insecure --console。控制台滚动结束后,末尾会输出临时密码,必须完整记录。继续输入 mysqld --install 注册服务,再输入 net start mysql 启动实例。此时可通过 services.msc 查看服务状态是否已运行。
Linux 系统安装与初始化
Linux 环境依赖命令行操作。使用 scp 或 rz 命令将 tar.gz 包传至服务器,执行 tar -zxvf 解压至 /usr/local/ 并重命名为 mysql。创建系统用户组与用户,命令为 groupadd mysql 和 useradd -r -g mysql mysql。授予 mysql 目录完全权限给该用户,执行 chown -R mysql:mysql /usr/local/mysql。进入 bin 目录,执行 ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data。初始化成功后会在 data 目录生成系统表空间。复制 support-files/mysql.server 至 /etc/init.d/ 并重命名为 mysqld,赋予执行权限。使用 chkconfig --add mysqld 加入开机自启,执行 service mysqld start 启动数据库。通过 tail -f /usr/local/mysql/data/hostname.err 查看启动日志,确认无 Fatal Error 即为成功。
首次登录与权限管理
双平台首次登录均需使用初始化阶段生成的临时凭证。终端输入 mysql -u root -p 回车,粘贴密码进入交互界面。8.0 版本严格执行密码复杂度策略,需包含大小写、数字及符号且不少于八位。执行 alter user 'root'@'localhost' identified by 'YourStrongPass123!'; 完成修改。随后执行 flush privileges; 使配置生效。为避免直接使用 root 账号带来安全风险,应创建业务专属账号。例如 create user 'app_user'@'%' identified by 'AppPass456!'; grant select,insert,update,delete on your_database.* to 'app_user'@'%'; flush privileges;。这种精细化的权限划分能有效防止误操作导致的核心数据丢失。
运行优化与故障排查
安装完成后若发现无法连接,优先检查防火墙规则。Windows 需在入站规则放行 3306 端口,Linux 需执行 firewall-cmd --add-port=3306/tcp --permanent 并 reload。若启动报 port 3306 occupied 错误,使用 taskkill /F /PID 进程ID 或 kill -9 进程号 终止冲突进程。针对高并发场景,建议在配置文件中调整 innodb_buffer_pool_size 为物理内存的百分之六十,同时开启 slow_query_log 记录执行超时的 SQL 语句。定期清理 binlog 日志可防止磁盘爆满。配合 Percona Monitoring Tools 或自带 performance_schema 视图,能实时监控连接数与锁等待情况,保障生产环境长期稳定运行。