云服务器上传数据库吗_具体操作步骤?云服务器上传数据库的具体操作步骤指南
凌晨三点,后台突然报错——本地数据库崩了! 老板夺命连环催修复,而你手抖着点开云服务器控制台... 别慌!上传数据库其实像“搬家”,但90%的人卡在权限和防火墙,甚至因网络波动丢数据!今天拆解四大核心步骤,尤其 SSH命令行的骚操作,连运维老鸟都翻过车👇
🛠 一、云服务器准备:别急着传文件!
反常识坑点:
你以为买完云服务器就能传数据?没开端口+没装数据库软件=白干!
防翻车三件套:
开通3306端口(MySQL默认端口)→ 阿里云/腾讯云控制台找到 安全组 → 添加规则“放行3306”
安装数据库软件:
bash复制
# Ubuntu系统装MySQL sudo apt update && sudo apt install mysql-server# 启动服务 sudo systemctl start mysql
查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加密反而跑满带宽
操作指南:
本地打开终端
执行(示例):
bash复制
scp -C -P 22 ./full_backup.sql root@121.40.88.xx:/home/
-C
:压缩传输-P
:指定SSH端口(默认22可省略)
断点续传骚操作:
→ 中途断开?用
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
命令 → 与现权限冲突
破解方案:
先清空备份文件里的权限语句:
bash复制
sed -i '/GRANT/d;/ALTER/d' full_backup.sql
手动创建临时用户:
sql复制
CREATE USER 'tempadmin'@'%' IDENTIFIED BY '密码强度要够!';GRANT ALL PRIVILEGES ON *.* TO 'tempadmin'@'%';
用新用户导入:
bash复制
mysql -u tempadmin -p < full_backup.sql
导入后立刻删临时用户!避免留后门
🔥 五、防火墙暗坑:3306开了也连不上?
离大谱真相:
阿里云/腾讯云有两层防火墙!安全组开了≠服务器iptables放行
双开操作:
云平台安全组:控制台放行3306
服务器防火墙:
bash复制
# Ubuntu系统 sudo ufw allow 3306# CentOS系统 sudo firewall-cmd --permanent --add-port=3306/tcpsudo firewall-cmd --reload
终极测试:
bash复制
telnet 121.40.88.xx 3306
→ 显示“Connected”才算通!
💎 暴论时间
2025年最骚操作:
直接把数据库扔对象存储(比如阿里云OSS)→ 免安装+自动备份!
→ 导出为SQL文件 → 上传OSS → 用云函数定时导入
(冷知识:OSS存储费比云硬盘低70%...但事务性能差些)
企业级项目?直接买云数据库RDS!贵点但省下80%运维时间...
(西部数码新用户48元/年?老用户续费翻倍警告⚠️)