服务器教程 AI核计算 8 views

服务器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-releaseuname -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环境验证):

  1. 添加官方YUM仓库

    wget https://dev.mysql.com/get/mysql80-community-release-el7-10.noarch.rpm
    sudo rpm -ivh mysql80-community-release-el7-10.noarch.rpm
    
  2. 刷新仓库并安装

    sudo yum install mysql-community-server -y
    
  3. 启动MySQL服务并设置开机自启

    sudo systemctl start mysqld
    sudo systemctl enable mysqld
    
  4. 获取临时密码

    sudo grep 'temporary password' /var/log/mysqld.log
    

    记录输出的临时密码,用于首次登录。

  5. 登录并修改密码

    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安装,且自动帮你完成部分安全配置。适合快速上手和测试环境。

安装步骤:

  1. 更新包索引并安装

    sudo apt update
    sudo apt install mysql-server -y
    
  2. 查看服务状态

    sudo systemctl status mysql
    

    如果显示active (running),说明安装成功。

  3. 初始化安全设置(关键步骤)

    sudo mysql_secure_installation
    

    按照提示:

    • 配置密码验证插件(推荐默认)。
    • 设置root密码(Ubuntu默认root使用auth_socket插件,通常需要先切换为mysql_native_password)。
    • 移除匿名用户。
    • 禁止root远程登录(本地安全)。
    • 移除测试数据库并重新加载权限表。
  4. 登录测试

    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=128Mmax_connections=50等参数。如果内存低于512MB,建议用MariaDB 10.x或MySQL 5.7更稳妥。

Q4. 安装完成如何验证MySQL是否正常工作?

执行sudo systemctl status mysqlmysqld检查服务状态;然后尝试用mysql -u root -p登录,执行SHOW DATABASES;看是否能列出数据库。也可以写一个简单的PHP/Python脚本连接测试。

七、结论

在服务器上安装MySQL并不复杂,关键是根据操作系统选择合适的安装方式,并重视初始安全配置。对大多数场景,推荐:

  • 新用户或快速部署:使用Ubuntu的apt install mysql-server,配合mysql_secure_installation完成配置。
  • 生产环境或长期维护:选择CentOS,从MySQL官方YUM仓库安装,获得最新稳定版和细粒度控制。

安装只是第一步,后续还需要设置数据库字符集、备份策略、慢查询日志等运维事项。如果你是第一次操作,建议先在云服务器(如AWS EC2、阿里云ECS)上创建一台低配实例练习,避免影响正在运行的服务。

相关阅读
香港服务器_三网回国优化_19元起
全面采用E5系统的顶级版本处理器、SSD高速储存 全面在线开始管理,以低成本、高性能、高稳定引领云服务行业