如何在服务器上安装和配置数据库(如MySQL)?

拥有一台**云服务器** 后,安装数据库通常是部署应用的关键第一步。本文将以最流行的开源数据库MySQL 为例,为您提供一份从零开始的、详尽的MySQL安装教程。内容涵盖安装、初始化、安全配置及远程连接,帮助您快速搭建一个稳定可靠的数据库环境。


一、准备工作

在开始之前,请确保您已经:

  1. 拥有一台云服务器 :无论是恒讯科技 的云服务器,还是其他服务商,建议使用CentOS 7/8 或Ubuntu 20.04/22.04等主流Linux发行版。

  2. 具备服务器访问权限:您需要通过SSH工具(如PuTTY、Xshell、Terminal)连接到您的服务器。

  3. 拥有root或sudo权限:执行安装命令需要较高的权限。

关键词: 云服务器 , MySQL安装教程 , Linux环境


二、安装MySQL服务器

我们将使用MySQL官方提供的Yum源(适用于CentOS/RHEL)或APT源(适用于Ubuntu/Debian)进行安装,这能确保我们获取到最新且稳定的版本。

对于CentOS / RHEL 系统:

  1. 添加MySQL Yum源

    bash
    复制
    下载

    复制代码
    sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
  2. 安装MySQL服务器

    bash
    复制
    下载

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

    bash
    复制
    下载

    复制代码
    sudo systemctl start mysqld
    sudo systemctl enable mysqld

对于Ubuntu / Debian 系统:

  1. 添加MySQL APT源

    bash
    复制
    下载

    复制代码
    wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
    sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
    # 在弹出的配置界面直接选择 "OK"
    sudo apt-get update
  2. 安装MySQL服务器

    bash
    复制
    下载

    复制代码
    sudo apt-get install -y mysql-server

    安装过程中,可能会提示您设置root用户的密码,请务必设置一个强密码。

关键词: 安装MySQL服务器 , MySQL安全配置


三、进行初始安全配置

安装完成后,为了数据库的安全,强烈建议运行MySQL自带的安全脚本。

  1. 获取临时密码(仅CentOS需要)

    在CentOS上,MySQL首次启动后会为root用户生成一个临时密码,查看方式如下:

    bash
    复制
    下载

    复制代码
    sudo grep 'temporary password' /var/log/mysqld.log

    记下显示的临时密码。

  2. 运行安全配置向导

    执行以下命令:

    bash
    复制
    下载

    复制代码
    sudo mysql_secure_installation

    接下来,您会看到一系列提示,请根据情况选择:

    • 验证密码插件 :建议输入 y 并设置一个强密码策略。

    • 更改ROOT密码 :输入 y,然后设置一个新的、高强度的root用户密码。

    • 删除匿名用户? :输入 y。

    • 禁止root远程登录? :输入 y。这是数据库安全的关键一步,确保root用户只能在服务器本地登录。

    • 删除测试数据库? :输入 y。

    • 重新加载权限表? :输入 y。

完成以上步骤后,您的MySQL已经处于一个相对安全的状态。

关键词: 数据库安全 , MySQL安全配置 , root密码


四、配置远程访问(可选但重要)

默认情况下,MySQL只允许本地连接。如果您的应用程序与数据库不在同一台服务器上,就需要配置远程访问。

警告:开启远程访问会增加安全风险,请务必设置强密码并谨慎操作。

  1. 登录MySQL

    使用root用户登录:

    bash
    复制
    下载

    复制代码
    mysql -u root -p
    # 输入您刚设置的root密码
  2. 创建一个专用用于远程连接的用户

    在MySQL提示符下,执行以下命令。请将 'your_strong_password' 替换为一个复杂的密码,将 'your_local_pc_ip' 替换为您应用服务器的IP地址(使用 % 表示允许任何IP,但极不安全,不推荐)。

    sql
    复制
    下载

    复制代码
    CREATE USER 'remote_user'@'your_local_pc_ip' IDENTIFIED BY 'your_strong_password';
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'your_local_pc_ip' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    EXIT;
  3. 配置防火墙

    您需要放行MySQL的默认端口(3306)。

    • 如果使用firewalld(CentOS):

      bash
      复制
      下载

      复制代码
      sudo firewall-cmd --permanent --add-port=3306/tcp
      sudo firewall-cmd --reload
    • 如果使用ufw(Ubuntu):

      bash
      复制
      下载

      复制代码
      sudo ufw allow 3306/tcp
      sudo ufw reload
  4. 修改MySQL绑定地址

    编辑MySQL配置文件:

    bash
    复制
    下载

    复制代码
    # CentOS
    sudo vi /etc/my.cnf
    # Ubuntu
    sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

    找到 bind-address 这一行,将其值从 127.0.0.1 修改为 0.0.0.0。

    ini
    复制
    下载

    复制代码
    bind-address = 0.0.0.0

    保存后,重启MySQL服务:

    bash
    复制
    下载

    复制代码
    # CentOS
    sudo systemctl restart mysqld
    # Ubuntu
    sudo systemctl restart mysql

现在,您就可以从指定的IP地址远程连接到这台服务器上的MySQL数据库了。

关键词: 数据库远程访问 , MySQL配置 , 防火墙配置


五、基本操作与故障排除
  • 登录MySQL :mysql -u root -p

  • 查看所有数据库 :SHOW DATABASES;

  • 创建一个新数据库 :CREATE DATABASE myapp_db;

  • 选择使用一个数据库 :USE myapp_db;

常见问题:

  • 忘记root密码 :需要停止MySQL服务,并使用 --skip-grant-tables 参数启动后进行重置。

  • 无法远程连接:请依次检查:① 防火墙规则;② MySQL绑定地址;③ 远程用户的授权IP地址。

结语

通过以上步骤,您已经成功在云服务器 上安装并配置了一个生产环境级别的MySQL数据库。正确的MySQL配置是保障您网站或应用数据稳定的基石。

相关推荐
mengchanmian9 小时前
VSFTP 服务器搭建(Centos)
运维·服务器·centos
唠点键盘之外的10 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨10 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
别动我齐刘海10 小时前
Linux 系统调试学习1
linux·运维·服务器·c++·学习·机器学习·机器人
ly768910 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉10 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
不像程序员的程序媛12 小时前
linux常见文本操作命令
linux·运维·服务器
金伟API102412 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑12 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu12 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构