MySQL是目前企业级开发中最常用的关系型数据库之一,在Linux服务器上部署它几乎成了后端开发的必修课。很多新手在安装时容易遇到依赖缺失、服务起不来或者端口连不上的问题。这篇教程直接跳过理论铺垫,按照实际运维习惯,从零开始带你完成下载、安装、配置和远程访问的全流程,确保一次性跑通。
一、安装前环境与依赖检查
操作前请确认你的Linux系统是64位架构,内核版本最好在3.10以上。推荐使用CentOS 8以上版本或者Ubuntu 20.04及以上,这些系统对现代MySQL的支持最完善。如果是全新虚拟机,建议先执行一次基础系统更新,同步时间服务器,防止后续安装过程中因时钟不同步导致的安全证书校验失败。同时务必检查系统里有没有残留的旧版MySQL或MariaDB,直接卸载干净,避免二进制文件和配置文件互相干扰。
二、获取官方安装包与源配置
强烈不建议去官网下载tar.gz压缩包手动解压,那样会丢失 systemctl 服务脚本和默认的 my.cnf 配置文件,后期排查故障极其困难。最稳妥的方式是添加官方软件仓库。以CentOS为例,打开终端输入 wget https://dev.mysql.com/get/mysql80-community-release-el9.noarch.rpm 拉取仓库包。如果提示命令不存在,先通过 yum install wget 补全工具。下载完成后执行 rpm -ivh 文件名.rpm,系统就会自动把MySQL的镜像源写入本地列表。Ubuntu用户可以直接去官网下载对应的 deb 包,用 dpkg -i 安装即可。
三、执行安装与服务启动
仓库配置完毕后,直接运行 yum install mysql-server 或者 apt-get install mysql-server。终端会弹出依赖树,核对版本号无误后输入 y 确认。等待进度条走完,整个过程大约需要三五分钟。安装结束后,数据库的数据目录会自动创建在 /var/lib/mysql,核心配置文件位于 /etc/my.cnf。此时输入 systemctl start mysqld 启动后台服务,接着用 systemctl enable mysqld 设置开机自启。通过 systemctl status mysqld 查看状态,只要看到 active (running) 且绿色标识,说明主进程已正常加载。
四、初始化安全设置与密码修改
MySQL首次启动时会为 root 账号生成随机临时密码,这个密码不会打印在屏幕上,而是写进了错误日志。执行 grep temporary password /var/log/mysqld.log 就能提取出来。拿到密码后立即用 mysql -u root -p 登录。出于安全机制,第一次连接必须强制修改密码,否则会被拒绝执行任何命令。新密码需包含大小写字母、数字和特殊符号,长度至少八位。修改完成后,建议进入数据库命令行,执行 alter user 语句进一步收紧权限策略,并在配置文件的 [mysqld] 节点下补充 default-character-set=utf8mb4,彻底杜绝中文乱码隐患。
五、远程访问配置与防火墙放行
默认状态下MySQL只绑定 localhost,外部工具根本连不上。需要编辑 /etc/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf,找到 bind-address 参数,将默认的 127.0.0.1 替换为 0.0.0.0,保存后重启服务生效。接下来处理系统防火墙,CentOS 用户执行 firewall-cmd --zone=public --add-port=3306/tcp --permanent 加上重载命令。Ubuntu 用户直接用 ufw allow 3306/tcp。最后在数据库内部执行 grant all privileges on *.* to root@% identified by 新密码 with grant option,执行 flush privileges 刷新缓存,外部客户端才能建立连接。
六、最终验证与日常维护建议
一切配置妥当后,找一台局域网内的电脑,用 Navicat 或命令行输入 mysql -h 服务器公网IP -P 3306 -u root -p。如果能顺利进入交互界面,并且 show databases 能列出系统默认库,说明安装完全成功。上线后建议开启慢查询日志,定期清理 ibdata1 文件膨胀带来的空间浪费,配合 crontab 编写自动备份脚本。数据库是业务的地基,稳定运行比盲目追求新版本更重要,遇到报错优先看日志文件,能省去大量调试时间。