当前位置: 首页 > 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.zskr.cn/news/47695.html

相关文章:

  • win1125h2使用和优化技巧
  • rsync安装部署
  • 湘潭西林瓶灌装机:料位监测,智能提醒加料
  • 对比m3node 时序数据库和influx/tsdb/greptime/VictoriaMetrics
  • 烟台西林瓶灌装加塞机:合规21 CFR Part 11,数据加密与审计追踪完善
  • 使用 Ansible 实现 Apache NiFi 集群扩容
  • YL-51单片机开发板配套资料
  • 2025年庭院美化设计与花园设计标杆企业推荐:北京陌上景观工程,首层庭院设计/屋顶庭院设计/别墅庭院设计/定义个性化户外生活新标准
  • Docker最新学习
  • 基于MATLAB的B样条曲面绘制
  • 动态规划精进篇:当终点在“世界之外”——出界的路径数 - 教程
  • Go Web 编程快速入门 02 - 认识 net/http 与 Handler 接口 - 实践
  • 简单配置一下下VScode
  • 人跟人的唯一差距就是勇气和执行力 - Leone
  • 555定时器-2. 单稳态多谐振荡器配置
  • 视频融合平台EasyCVR:云台控制与语音对讲赋能远程交互式视频监控新场景
  • 基于CCS开发环境实现DSP RS485总线数据收发
  • 2025年热浸锌桥架厂家权威推荐榜单:不锈钢桥架/光伏锌铝镁桥架/喷塑桥架源头厂家精选
  • 使用 seatunnel 实现数据同步
  • 甘孜西林瓶灌装线厂家免费培训内容揭秘
  • OWASP 在新的前 10 名榜单中强调供应链风险
  • 营口西林瓶灌装机资质齐全,含医疗器械生产许可与行情报价
  • Tita 项目管理软件:驱动互联网企业高效运营与战略落地新引擎
  • 2025年卡盘式自定心坡口机优质厂家权威推荐榜单:切管机/钢板坡口机/倒角机源头厂家精选
  • AI元人文:从被动执行到主动探索——基于三值张力的文明演进新范式
  • locust-WebSocket压测
  • locust常用类和方法解析
  • 基于遗传算法的PID控制器参数整定方法详解
  • QT项目复盘:如何在有限资源下把桌面端做成‘高端应用’?
  • 基于HSMS通信标准的SECS通讯程序