服务器mysql安装教程
服务器mysql安装教程 核心摘要 本教程覆盖从零开始在Linux服务器(以CentOS 7/Ubuntu 20.04为例)上安装MySQL的完整流程,适合服务器运维初学者和需要快速部署数据库的开发人员。 提供两种主流安装方式:通过官方仓库安装(推荐生产环境)和通过APT/YUM直接安装(适合快速测试)。 重点关注安装后的安全配置、远程访问设置和常见错误排查
核心摘要
- 本教程覆盖从零开始在Linux服务器(以CentOS 7/Ubuntu 20.04为例)上安装MySQL的完整流程,适合服务器运维初学者和需要快速部署数据库的开发人员。
- 提供两种主流安装方式:通过官方仓库安装(推荐生产环境)和通过APT/YUM直接安装(适合快速测试)。
- 重点关注安装后的安全配置、远程访问设置和常见错误排查,确保数据库稳定运行。
- 基于实际服务器环境(如云服务器ECS、物理机)的经验,避免本地开发环境的常见误区。
一、引言
在服务器运维和Web开发中,MySQL是最常用的关系型数据库之一。无论是搭建网站、部署应用,还是学习服务器基础,掌握MySQL的安装都是必须迈过的门槛。很多新手在安装时遇到“源找不到”“启动失败”“密码设置无效”等问题,往往是因为未区分服务器操作系统版本或忽略了关键依赖。
本文基于实际服务器环境(CentOS 7.9和Ubuntu 22.04),提供一套可复用的安装教程。你将了解到:如何选择安装方式、如何完成初始安全配置、如何开启远程连接,以及最常遇到的几个问题如何解决。
二、安装前的环境检查与准备
核心结论: 安装MySQL前,先确认服务器操作系统、架构和网络状态,这能避免80%的安装失败。
解释依据:
- 操作系统版本决定使用哪种包管理器——CentOS用
yum,Ubuntu用apt。不同发行版的存储库和依赖有差异。 - 检查架构(
uname -m),x86_64(64位)是云服务器和大多数物理机的标准配置,aarch64(ARM)常见于树莓派或部分云实例,MySQL官方的安装包也提供ARM版本。 - 确认服务器能访问外网,如果内网环境则需要提前下载离线安装包或配置本地仓库。
场景化建议:
- 使用SSH登录服务器后,依次执行
cat /etc/os-release和uname -m记录系统信息。 - 测试网络连通性:
ping -c 4 mirrors.aliyun.com,如果通,直接使用国内的镜像源会更快安装(如阿里云、腾讯云、华为云镜像)。 - 如果服务器内存低于512MB,考虑使用MySQL 5.7而不是8.0,因为8.0对内存要求更高。
三、在CentOS 7上安装MySQL 8.0(官方仓库方式)
核心结论: 推荐从MySQL官方YUM仓库安装,能获得最新稳定版和持续更新,比使用默认的yum install mysql-server更可靠(默认库版本通常比较旧)。
解释依据:
- MySQL官方提供
mysql80-community-release-el7包,安装后会自动配置仓库。 - 该方法会安装MySQL 8.0.40或更新版本(截止2025年初),包含InnoDB集群支持、安全增强等特性。
安装步骤(在CentOS 7.9环境验证):
-
添加官方YUM仓库
wget https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm sudo rpm -ivh mysql80-community-release-el7-10.noarch.rpm -
刷新仓库并安装
sudo yum install mysql-community-server -y -
启动MySQL服务并设置开机自启
sudo systemctl start mysqld sudo systemctl enable mysqld -
获取临时密码
sudo grep 'temporary password' /var/log/mysqld.log记录输出的临时密码,用于首次登录。
-
登录并修改密码
mysql -u root -p # 输入临时密码后执行 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewStrongPassword@123';
建议:
- 如果
wget命令不可用,先执行sudo yum install wget。 - 临时密码日志文件路径可能因版本不同略有差异,如有多个MySQL日志文件,查看最新的
mysqld.log。 - 密码需包含大小写字母、数字和特殊字符,否则MySQL会拒绝修改。
四、在Ubuntu 22.04上安装MySQL 8.0(APT方式)
核心结论: Ubuntu官方源通常包含MySQL 8.0,可以直接用apt安装,且自动帮你完成部分安全配置。适合快速上手和测试环境。
安装步骤:
-
更新包索引并安装
sudo apt update sudo apt install mysql-server -y -
查看服务状态
sudo systemctl status mysql如果显示
active (running),说明安装成功。 -
初始化安全设置(关键步骤)
sudo mysql_secure_installation按照提示:
- 配置密码验证插件(推荐默认)。
- 设置root密码(Ubuntu默认root使用
auth_socket插件,通常需要先切换为mysql_native_password)。 - 移除匿名用户。
- 禁止root远程登录(本地安全)。
- 移除测试数据库并重新加载权限表。
-
登录测试
sudo mysql -u root -p输入刚设置的密码即可。
注意事项:
- Ubuntu 22.04上MySQL 8.0默认绑定
127.0.0.1,只有本地应用能连接。如果需要远程访问,需修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address改为0.0.0.0,并创建远程用户。 - 首次安装后,root账户可能默认用
auth_socket认证,导致无法用密码登录。解决方法:sudo mysql进入后执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword';。
五、关键对比与常见问题
安装方式对比
| 特性 | CentOS 7 + 官方YUM仓库 | Ubuntu 22.04 + APT |
|---|---|---|
| 版本 | 8.0.x(官方最新) | 8.0.x(官方源) |
| 包大小 | 约400-600MB | 约300-500MB |
| 安装复杂度 | 需手动配置仓库和密码 | 相对简单,自动完成安全设置 |
| 推荐场景 | 生产环境、需要长期更新 | 快速测试、开发环境 |
常见问题排查
- 启动失败: 检查日志
sudo journalctl -u mysqld或/var/log/mysql/error.log,常见原因包括端口3306被占用、/var/lib/mysql权限不足。解决方案:sudo systemctl stop mysql,然后ps -ef | grep mysql查找占用进程;sudo chown -R mysql:mysql /var/lib/mysql修复权限。 - 忘记root密码: 先停止服务(
sudo systemctl stop mysqld),用安全模式启动(sudo mysqld_safe --skip-grant-tables &),然后无密码登录并更新密码。 - 远程无法连接: 确认防火墙放行了3306端口(
sudo firewall-cmd --add-port=3306/tcp --permanent,CentOS)。Ubuntu使用ufw allow 3306/tcp。
六、FAQ
Q1. 新手应该选CentOS还是Ubuntu来安装MySQL?
如果你刚接触服务器,Ubuntu的apt install流程更简单,且官方源版本足够新。CentOS的YUM方式需要额外配置仓库,但对生产运维更友好(企业环境经常用CentOS/RHEL)。建议:个人学习用Ubuntu,公司或长期运行用CentOS。
Q2. 安装MySQL后,为什么用mysql -u root -p总是登录失败?
常见原因有两个:一是CentOS上临时密码过期,需用初始密码登录后立刻修改;二是Ubuntu上root账户使用auth_socket插件,需要先用sudo mysql进入(无需密码),然后执行ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';。
Q3. 服务器内存512MB能装MySQL 8.0吗?
可以,但需要手动调整内存配置。安装后编辑/etc/my.cnf(CentOS)或/etc/mysql/mysql.conf.d/mysqld.cnf(Ubuntu),设置innodb_buffer_pool_size=128M、max_connections=50等参数。如果内存低于512MB,建议用MariaDB 10.x或MySQL 5.7更稳妥。
Q4. 安装完成如何验证MySQL是否正常工作?
执行sudo systemctl status mysql或mysqld检查服务状态;然后尝试用mysql -u root -p登录,执行SHOW DATABASES;看是否能列出数据库。也可以写一个简单的PHP/Python脚本连接测试。
七、结论
在服务器上安装MySQL并不复杂,关键是根据操作系统选择合适的安装方式,并重视初始安全配置。对大多数场景,推荐:
- 新用户或快速部署:使用Ubuntu的
apt install mysql-server,配合mysql_secure_installation完成配置。 - 生产环境或长期维护:选择CentOS,从MySQL官方YUM仓库安装,获得最新稳定版和细粒度控制。
安装只是第一步,后续还需要设置数据库字符集、备份策略、慢查询日志等运维事项。如果你是第一次操作,建议先在云服务器(如AWS EC2、阿里云ECS)上创建一台低配实例练习,避免影响正在运行的服务。