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

MySql批量导入csv文件

前置条件:因为在数据库在云端,且测试数据库与生产数据库不一致,索性就在本地搭建一个MySql数据库,把生产的可用数据导入到本地,方便本地测试。当然要注意一点,csv文件是没有建表语句的,需要你先建表

步骤1:启用MySQL本地文件加载
打开终端,执行:
bash
# 连接到MySQL
mysql -u root -p输入密码:xxxxx
在MySQL中执行:
sql
SET GLOBAL local_infile = 1;
exit;步骤2:创建导入脚本
在终端中执行:
bash
# 进入桌面目录
cd ~/Desktop# 创建脚本文件
touch import_csv.sh# 用文本编辑器打开
open -a TextEdit import_csv.sh步骤3:复制脚本内容
在TextEdit中粘贴以下内容:
bash
#!/bin/bash# 数据库配置
DB_HOST="localhost"
DB_USER="root"
DB_PASS="xxxx"  # 你的密码
DB_NAME="db_xxx"
CSV_DIR="/Users/mac/Desktop/aliyun-mysql"  # 这里是存放csv文件的文件夹echo "开始批量导入CSV文件到 db_crm 数据库..."
echo "CSV文件目录: $CSV_DIR"
echo "----------------------------------------"# 检查目录是否存在
if [ ! -d "$CSV_DIR" ]; thenecho "❌ 错误: CSV目录不存在: $CSV_DIR"exit 1
fi# 检查是否有CSV文件
csv_count=$(ls "$CSV_DIR"/*.csv 2>/dev/null | wc -l | tr -d ' ')
if [ $csv_count -eq 0 ]; thenecho "❌ 错误: 在 $CSV_DIR 中没有找到CSV文件"exit 1
fiecho "找到 $csv_count 个CSV文件"
echo "----------------------------------------"# 遍历所有CSV文件
for csv_file in "$CSV_DIR"/*.csv; doif [ -f "$csv_file" ]; then# 从文件名获取表名(去掉.csv后缀)table_name=$(basename "$csv_file" .csv)echo "📥 正在导入: $(basename "$csv_file") → 表: $table_name"# 使用LOAD DATA INFILE导入mysql --local-infile=1 -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME 2>/dev/null << EOF
SET FOREIGN_KEY_CHECKS=0;
LOAD DATA LOCAL INFILE '$csv_file'
INTO TABLE $table_name
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;
SET FOREIGN_KEY_CHECKS=1;
EOF# 检查导入结果if [ $? -eq 0 ]; then# 查询导入的数据量count=$(mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -s -N -e "SELECT COUNT(*) FROM $table_name;" 2>/dev/null)echo "✅ 成功导入: $table_name (数据量: $count 行)"elseecho "❌ 导入失败: $table_name"echo "   可能原因: 表不存在或数据格式不匹配"fiecho "----------------------------------------"fi
doneecho "🎉 批量导入完成!"
echo "请在MySQL中验证数据:"
echo "  USE db_xxx;"
echo "  SHOW TABLES;"
echo "  SELECT COUNT(*) FROM 表名;"步骤4:保存并设置权限
在TextEdit中:
按 Command + S 保存
关闭TextEdit
回到终端:
bash
# 给脚本执行权限
chmod +x import_csv.sh# 验证脚本
ls -la import_csv.sh步骤5:运行导入脚本
bash
# 运行脚本
./import_csv.sh步骤6:验证导入结果
导入完成后,在MySQL中检查:
bash
# 连接到MySQL
mysql -u root -p输入密码后执行:USE db_xxx;-- 查看所有表
SHOW TABLES;-- 查看某个表的数据量示例
SELECT COUNT(*) FROM sys_user;-- 查看前几条数据示例
SELECT * FROM sys_user LIMIT 5;

 

http://www.jsqmd.com/news/38648/

相关文章:

  • win1125h2使用和优化技巧
  • 植物大战僵尸经典版下载教程:重新体验最纯粹的塔防乐趣
  • rsync安装部署
  • PG预写式日志解码的艺术与应用
  • 5 CSRF 攻击防范
  • 湘潭西林瓶灌装机:料位监测,智能提醒加料
  • 对比m3node 时序数据库和influx/tsdb/greptime/VictoriaMetrics
  • 11.12记录-机器学习
  • 个人工作版(Linux)
  • 烟台西林瓶灌装加塞机:合规21 CFR Part 11,数据加密与审计追踪完善
  • CF710F String Set Queries
  • 使用 Ansible 实现 Apache NiFi 集群扩容
  • 多智能体设计模式和智能体框架,你会了么?
  • YL-51单片机开发板配套资料
  • 神经网络中激活函数的作用
  • 2025年耙式真空干燥机优质厂家权威推荐榜单:耙式干燥机/ZB系列耙式真空干燥机/真空耙式干燥机源头厂家精选
  • 2025年庭院美化设计与花园设计标杆企业推荐:北京陌上景观工程,首层庭院设计/屋顶庭院设计/别墅庭院设计/定义个性化户外生活新标准
  • 【原理到实战】实验异质性分析
  • 习题解析之:输出 n 以内的所有素数
  • Docker最新学习
  • 最近学习到的一些基础知识
  • 新手入门常用的Dos命令
  • 2025年重庆吊装搬运公司权威推荐榜单:工厂搬迁/搬运/搬运设备源头公司精选
  • 基于LMS与RLS的自适应回声消除滤波
  • 2025年气密门窗实力厂家权威推荐榜单:折叠门窗/折叠门窗/断桥铝门窗源头厂家精选
  • 到底是用vue2还是vue3好?
  • 基于MATLAB的B样条曲面绘制
  • 2025 年 11 月建筑木方厂家推荐排行榜,建筑木方/模板木方/桥梁木方/樟松工地木方/防腐建筑木方/烘干建筑木方/松木木方/辐射松木方/铁杉木方公司推荐
  • 2025 年 11 月防腐木厂家推荐排行榜,碳化防腐木/花旗防腐木/南方松防腐木/辐射松防腐木/菠萝格防腐木,室内装修与建筑防腐木公司推荐
  • 动态规划精进篇:当终点在“世界之外”——出界的路径数 - 教程