在云服务器上如何手动安装MySQL数据库?

在云服务器上手动安装 MySQL 数据库的步骤因操作系统不同而略有差异。以下以 Ubuntu/DebianCentOS/RHEL 系统为例,介绍如何手动安装 MySQL。


✅ 一、准备工作

  1. 登录到云服务器
    使用 SSH 登录你的云服务器(如阿里云、腾讯云、AWS、华为云等):

    ssh root@your_server_ip
  2. 更新系统包

    # Ubuntu/Debian
    sudo apt update && sudo apt upgrade -y
    
    # CentOS/RHEL
    sudo yum update -y
    # 或者对于 CentOS 8+/RHEL 8+ 使用 dnf
    sudo dnf update -y

✅ 二、在 Ubuntu/Debian 上安装 MySQL

1. 安装 MySQL 服务器

sudo apt install mysql-server -y

2. 启动并启用 MySQL 服务

sudo systemctl start mysql
sudo systemctl enable mysql

3. 运行安全配置向导(推荐)

sudo mysql_secure_installation

该命令会引导你设置:

  • 设置 root 密码
  • 删除匿名用户
  • 禁止 root 远程登录
  • 删除测试数据库
  • 重新加载权限表

注意:MySQL 8.0 默认使用 caching_sha2_password 插件,某些旧客户端可能不兼容。如需兼容,可改为 mysql_native_password


✅ 三、在 CentOS/RHEL 上安装 MySQL

1. 添加 MySQL Yum 仓库(以 MySQL 8.0 为例)

前往 MySQL 官方下载页面 获取最新 RPM 包地址:

# 下载并安装 MySQL Yum Repository(示例为 CentOS 7)
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-5.noarch.rpm

2. 安装 MySQL 服务器

sudo yum install mysql-server -y
# 或使用 dnf(适用于较新版本)
sudo dnf install mysql-server -y

3. 启动并启用服务

sudo systemctl start mysqld
sudo systemctl enable mysqld

4. 查看临时 root 密码(仅首次启动)

MySQL 第一次启动时会生成一个临时 root 密码:

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

输出类似:

A temporary password is generated for root@localhost: abc123XYZ!

5. 运行安全配置

sudo mysql_secure_installation

输入临时密码后,按提示设置新密码并完成安全配置。


✅ 四、基本配置(通用)

1. 登录 MySQL

sudo mysql -u root -p

2. 修改 root 用户允许远程连接(可选)

如果需要从外部访问数据库(注意安全风险):

-- 登录 MySQL 后执行
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的强密码';
CREATE USER 'root'@'%' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

⚠️ 注意:开放 root 远程访问有安全风险,建议创建专用用户并限制 IP。

3. 修改绑定地址(允许远程连接)

编辑 MySQL 配置文件:

  • Ubuntu: /etc/mysql/mysql.conf.d/mysqld.cnf
  • CentOS: /etc/my.cnf/etc/my.cnf.d/mysql-server.cnf

找到 bind-address,修改为:

bind-address = 0.0.0.0

或注释掉该行(默认监听所有接口)。

重启 MySQL:

sudo systemctl restart mysql    # Ubuntu
sudo systemctl restart mysqld   # CentOS

✅ 五、防火墙设置

Ubuntu(UFW)

sudo ufw allow 3306/tcp

CentOS(firewalld)

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

🔐 建议限制来源 IP,例如只允许特定 IP 访问 3306 端口。


✅ 六、测试连接

本地测试:

mysql -u root -p

远程测试(使用客户端工具如 Navicat、MySQL Workbench 或命令行):

mysql -h your_server_ip -u root -p

✅ 七、常见问题

问题 解决方法
无法远程连接 检查 bind-address、防火墙、安全组(云平台控制台)、用户权限
忘记 root 密码 进入安全模式重置密码
服务无法启动 查看日志 journalctl -u mysqltail /var/log/mysqld.log

✅ 补充:云平台安全组配置

确保在云服务商控制台(如阿里云、腾讯云)中:

  • 开放 3306 端口
  • 设置源 IP 限制(如仅允许公司 IP)

✅ 总结:
通过以上步骤,你可以在云服务器上成功手动安装并配置 MySQL 数据库。建议生产环境使用更强的安全策略,如 SSL 加密、专用数据库用户、定期备份等。

如需自动化部署,可考虑使用 Docker 或 Ansible 脚本。

如有具体操作系统或 MySQL 版本需求,欢迎进一步提问!

未经允许不得转载:云计算 » 在云服务器上如何手动安装MySQL数据库?