云服务器上传数据库吗_具体操作步骤?云服务器上传数据库的具体操作步骤指南

凌晨三点,后台突然报错——​​本地数据库崩了!​​ 老板夺命连环催修复,而你手抖着点开云服务器控制台... 别慌!上传数据库其实像“搬家”,但​​90%的人卡在权限和防火墙​​,甚至因网络波动丢数据!今天拆解四大核心步骤,尤其 ​​SSH命令行的骚操作​​,连运维老鸟都翻过车👇


🛠 一、云服务器准备:别急着传文件!

​反常识坑点​​:

你以为买完云服务器就能传数据?​​没开端口+没装数据库软件=白干!​

​防翻车三件套​​:

  1. ​开通3306端口​​(MySQL默认端口)→ 阿里云/腾讯云控制台找到 ​​安全组​​ → 添加规则“放行3306”

  2. ​安装数据库软件​​:

    bash复制
    # Ubuntu系统装MySQL  sudo apt update && sudo apt install mysql-server# 启动服务  sudo systemctl start mysql
  3. ​查IP白名单​​:

    → 本地IP是否被云服务器屏蔽?用 curl ifconfig.me查本地IP → 加入安全组白名单

    某用户传了3小时数据,最后发现IP被拦...​​或许暗示云服务商默认拦截策略更严格​


💾 二、本地导出:小心“备份刺客”!

​血泪现场​​:

用Navicat导SQL文件 → 文件竟缺了20张表!​​GUI工具默认跳过大表​​...

​救命操作流​​:

→ *** 磕命令行最稳(以MySQL为例):

bash复制
mysqldump -u root -p --single-transaction --routines --triggers --all-databases > full_backup.sql

​关键参数​​:

  • --single-transaction:锁表?不存在的!边备份边写新数据

  • --routines:存储过程别漏掉

  • --triggers:触发器一起打包

导出后立刻用 grep "CREATE TABLE" full_backup.sql查表数量 → 对比原库数量!


📤 三、文件上传:SCP命令比FTP快10倍

​速度玄学​​:

传10GB文件,FTP花2小时 → SCP命令20分钟搞定!​​SSH加密反而跑满带宽​

​操作指南​​:

  1. 本地打开终端

  2. 执行(示例):

    bash复制
    scp -C -P 22 ./full_backup.sql root@121.40.88.xx:/home/
    • -C:压缩传输

    • -P:指定SSH端口(默认22可省略)

  3. ​断点续传骚操作​​:

    → 中途断开?用 rsync接着传:

    bash复制
    rsync -Pavz -e "ssh -p22" ./full_backup.sql root@121.40.88.xx:/home/

不过话说回来... ​​内网传输更快?​​ 具体跨运营商优化机制待深挖,但电信→联通必卡顿!


⚡ 四、导入数据:权限!权限!权限!

​血压飙升现场​​:

执行 mysql -u root -p < full_backup.sql→ 疯狂报错“ACCESS DENIED”

​根本原因​​:

  • 云服务器MySQL默认​​禁止root远程登录​

  • 备份文件含 ​GRANT命令​​ → 与现权限冲突

​破解方案​​:

  1. 先清空备份文件里的权限语句:

    bash复制
    sed -i '/GRANT/d;/ALTER/d' full_backup.sql
  2. 手动创建临时用户:

    sql复制
    CREATE USER 'tempadmin'@'%' IDENTIFIED BY '密码强度要够!';GRANT ALL PRIVILEGES ON *.* TO 'tempadmin'@'%';
  3. 用新用户导入:

    bash复制
    mysql -u tempadmin -p < full_backup.sql

导入后​​立刻删临时用户​​!避免留后门


🔥 五、防火墙暗坑:3306开了也连不上?

​离大谱真相​​:

阿里云/腾讯云有​​两层防火墙​​!安全组开了≠服务器iptables放行

​双开操作​​:

  1. ​云平台安全组​​:控制台放行3306

  2. ​服务器防火墙​​:

    bash复制
    # Ubuntu系统  sudo ufw allow 3306# CentOS系统  sudo firewall-cmd --permanent --add-port=3306/tcpsudo firewall-cmd --reload
  3. ​终极测试​​:

    bash复制
    telnet 121.40.88.xx 3306

    → 显示“Connected”才算通!


💎 暴论时间

​2025年最骚操作​​:

直接把数据库扔​​对象存储​​(比如阿里云OSS)→ ​​免安装+自动备份​​!

→ 导出为SQL文件 → 上传OSS → 用云函数定时导入

(冷知识:OSS存储费比云硬盘低70%...但事务性能差些)

企业级项目?直接买​​云数据库RDS​​!贵点但省下80%运维时间...

(西部数码新用户48元/年?老用户续费翻倍警告⚠️)