数据库导入准备工作
备份现有数据
操作前务必通过DA面板的「备份/恢复」功能生成全站备份(含数据库),或使用phpMyAdmin单独导出当前数据库,防止意外覆盖重要数据。
确认文件格式
.sql
、.sql.gz
(压缩格式)两种文件类型检查文件权限
通过SSH执行 ls -l 文件名
确认SQL文件权限设置为644
,避免因权限不足导致导入失败。
4种导入方式详解
(推荐优先使用前两种可视化操作)
▋ 方式1:phpMyAdmin图形化导入
utf8mb4_general_ci
→ 最大上传限制默认512MB # 超大文件需修改配置(SSH执行): nano /usr/local/directadmin/conf/phpMyAdmin.conf 修改 $cfg['UploadDir'] 指定临时目录
▋ 方式2:DA面板原生导入工具
▋ 方式3:SSH命令行导入(推荐专业人员)
mysql -u 数据库用户名 -p 数据库名 < 导入文件.sql # 输入密码后自动执行(无可视化进度提示)
▋ 方式4:cron定时任务导入
创建Shell脚本并设置定时任务:
#!/bin/sh mysql -u root -p密码 数据库名 < /path/to/database.sql
注:此方法存在密码泄露风险,建议仅在内部测试环境使用
高频问题解决方案
| 问题现象 | 诊断方法 | 修复方案 |
|———|———|———|
| 导入后页面乱码 | 检查SQL文件头SET NAMES
声明 | 用Notepad++将文件编码转为UTF-8 BOM格式 |
| 超时中断 | 查看DA面板日志/var/log/directadmin/error.log
| 修改my.cnf增加max_allowed_packet=256M
|
| 权限拒绝 | 执行mysql -V
确认版本 | 重设用户权限:GRANT ALL ON 数据库.* TO '用户'@'localhost'
|
安全操作规范
敏感数据脱敏
导入前使用sed -i 's/原始数据/替换数据/g' filename.sql
命令处理隐私信息
版本兼容性检查
MySQL 5.7与8.0存在兼容差异,建议通过mysqldump --skip-comments
跳过注释导出
事务验证机制
大型数据导入时添加事务控制语句:
START TRANSACTION; 源SQL内容 COMMIT;
专业建议
SHOW PROCESSLIST;
监控执行状态mydumper
多线程工具提升效率CHECK TABLE tablename;
验证数据完整性引用来源
(本文由服务器运维工程师根据十年实操经验总结,数据更新至2025年10月)