当前位置: 首页 > news >正文

MySQL 命令行导入 SQL 文件

1. 使用命令行直接导入

mysql -u your_username -p your_database < your_file.sql

2.分割大型 SQL 文件

如果 SQL 文件非常大,可以将其分割成多个小文件:

# 使用 split 命令分割文件(每 1000 行一个文件)
split -l 1000 large_file.sql chunk_# 逐个导入分割后的文件
for file in chunk_*; doecho "Importing $file..."mysql -u your_username -p your_database < $file
done

3.使用进度显示工具(推荐)

对于大型 SQL 文件,可以使用 pv 命令(Pipe Viewer)来显示导入进度:

# 安装 pv(如果尚未安装)
sudo apt-get install pv  # Ubuntu/Debian
sudo yum install pv      # CentOS/RHEL# 使用 pv 导入
pv your_file.sql | mysql -u your_username -p your_database

使用pv监控导入进度
安装好后,你可以用下面这个命令来导入并查看进度:

pv ssy-edu_2025-09-12_11-39-04_mysql_data.sql | mysql -ussy -qh -p ssy-qh

执行后,pv会显示一个进度条,包括已用时间、进度百分比、数据传输速率和预计剩余时间(ETA)。

显示更多信息
如果你想看更详细的信息,可以加上-pterb参数:

pv -pterb ssy-edu_2025-09-12_11-39-04_mysql_data.sql | mysql -ussy -qh -p ssy-qh
  • -p:显示进度条

  • -t:显示已用时间

  • -e:显示预计剩余时间(ETA)

  • -r:显示数据传输速率

  • -b:显示已传输的字节数

如果暂时无法安装pv

查看MySQL进程状态mysql -u user -p -e 'SHOW PROCESSLIST;'查看当前执行的SQL语句和状态

4.其他优化点

先清空数据库再导入 是一个非常合理且推荐的做法,尤其是在你反复遇到 Table already exists 错误和查询中断的情况下。这可以确保一个干净的初始状态,避免很多冲突。

但是,请务必谨慎操作,因为清空数据库会永久删除所有现有数据

🚨 非常重要:首先备份!(如果你需要保留当前数据)

如果你当前数据库里有需要保留的数据,请先备份:

# 使用 mysqldump 备份整个数据库
mysqldump -u your_username -p your_database > backup_before_import.sql

或者只备份某些重要的表。

使用 MySQL 命令(逐行执行)

-- 方法A:
-- 1. 连接到 MySQL
mysql -u your_username -p-- 2. 选择你的数据库
USE your_database_name;-- 3. 禁用外键检查,避免删除时因外键约束而失败
SET FOREIGN_KEY_CHECKS = 0;-- 4. 生成并执行删除所有表的命令
-- 这会查询出所有表名,并生成一系列的 DROP TABLE 语句
SELECT CONCAT('DROP TABLE IF EXISTS `', table_name, '`;')
FROM information_schema.tables
WHERE table_schema = 'your_database_name';-- 【注意】上面一句只会生成命令,不会执行。你需要复制输出的结果,然后粘贴执行。
-- 或者使用以下更自动化的方法:
-- 方法B:使用命令行工具(更高效,一键完成)
# 此命令会直接清空整个数据库
mysql -u your_username -p -e "SET FOREIGN_KEY_CHECKS = 0; \
SELECT CONCAT('DROP TABLE IF EXISTS \`', table_name, '\`;') \
FROM information_schema.tables \
WHERE table_schema = 'your_database_name'" | \
grep '^DROP' | \
mysql -u your_username -p your_database_name

一句更强力的清空命令(包括视图和存储过程):

# 1. 删除整个数据库(这会删除所有数据和表结构)
mysql -u your_username -p -e "DROP DATABASE your_database_name;"# 2. 创建一个新的空数据库
mysql -u your_username -p -e "CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

这是最彻底的方法,推荐使用。


文章转载自:

http://yoVV1yUJ.sbyhj.cn
http://kee7vgJh.sbyhj.cn
http://C8AJjvyI.sbyhj.cn
http://cwb4FTdR.sbyhj.cn
http://LtaahxJz.sbyhj.cn
http://jm0N1ESt.sbyhj.cn
http://EvT74pdo.sbyhj.cn
http://76mhK5kG.sbyhj.cn
http://Y1ciV2n3.sbyhj.cn
http://uzxVBa1J.sbyhj.cn
http://DNUhdZdF.sbyhj.cn
http://WVFSkMA8.sbyhj.cn
http://pWLmOwGU.sbyhj.cn
http://5p0YiNn1.sbyhj.cn
http://i4T7Jomk.sbyhj.cn
http://eiOqjv5b.sbyhj.cn
http://9JuGi0qR.sbyhj.cn
http://ZZocGCTx.sbyhj.cn
http://b51A70io.sbyhj.cn
http://n4cyR057.sbyhj.cn
http://40WU4qhi.sbyhj.cn
http://qSKTSgAl.sbyhj.cn
http://4XZvv0C6.sbyhj.cn
http://vRATqs8X.sbyhj.cn
http://7jO9jZF0.sbyhj.cn
http://TSPb1tUL.sbyhj.cn
http://F7TqhkRV.sbyhj.cn
http://aHqPRXIO.sbyhj.cn
http://zFSlZopt.sbyhj.cn
http://OzjXVKjr.sbyhj.cn
http://www.dtcms.com/a/380332.html

相关文章:

  • 3DMAX自动材质开关插件AutoMaterial安装和使用方法
  • Ubuntu C编程 (make工具和Makefile的引用)
  • 9.12AI简报丨腾讯投资AI游戏平台,B站开源AniSora V3
  • 家庭健康智能终端:解锁智能家居时代的健康管理
  • 机器视觉检测如何使用360 度全景成像镜头进行AI 瑕疵检测
  • # Windows驱动程序开发入门:从原理到实践
  • 在Webpack中集成Vite的开发服务器时,可能会遇到哪些兼容性问题?如何解决?
  • DCA1000 AWR1843 环境安装
  • 零公网IP 跨设备协同OctoPrint+cpolar3D打印远程管理新方法
  • 【Spring】原理解析:Spring Boot 自动配置的核心机制与实战剖析
  • Linux挂在目录空间问题--随手
  • Linux:线程控制详解
  • 花漾TK功能重要更新:界面重大更新、新增店铺数字面板(Dashboard)等(20250820)
  • 【计算机网络 | 第14篇】应用层协议
  • 三坐标测量仪:高精度测量内径检测手段及其实际运用
  • MQTT Dashboard
  • Spark广播变量HttpBroadcast和TorrentBroadcast对比
  • lvgl修改输入设备驱动使其支持鼠标右键、双击、滑轮...
  • 什么是 SaaS 安全?
  • LeetCode力扣-hot100系列(5)
  • 【Vue2手录12-单文件组件SFC】
  • MATLAB | 这是屎吗?抱歉打错了,这是什么?
  • leedcode 算法刷题第三十三天
  • 认知语义学对人工智能中自然语言处理的深层语义分析的影响与启示
  • 第四章:AI集成与机器学习
  • Redis面试相关
  • Python获取Windows已安装的所有应用程序列表
  • 计算机视觉(opencv)实战十六——图像像素直方图 与 掩膜
  • SSH登录管理
  • 利用OpenCV进行指纹识别的案例