MySQL数据库使用mysqldump命令导入导出方法
-
在日常数据库管理中,MySQL的导入导出功能是保障数据安全、实现数据迁移的核心技术。本文将系统梳理
mysqldump、mysql命令行工具及LOAD DATA/SELECT ... INTO OUTFILE语句的完整实现方案。数据导出方法
使用
mysqldump导出数据库mysqldump是MySQL官方提供的命令行工具,支持全库/单表导出及结构分离功能。# 导出整个数据库 mysqldump -u [用户名] -p[密码] [数据库名] > [输出文件.sql] # 示例:导出mydatabase库 mysqldump -u root -p mydatabase > backup.sql # 仅导出表结构 mysqldump -u [用户名] -p[密码] -d [数据库名] > [结构文件.sql] # 示例:导出employees表结构 mysqldump -u root -p -d mydatabase employees > schema_only.sql
使用
SELECT ... INTO OUTFILE导出文本此方法适合生成CSV等结构化文件,需指定字段分隔符和行终止符。
SELECT name, email INTO OUTFILE '/tmp/employees.txt' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM employees;
数据导入方法
使用
mysql命令导入SQL文件通过标准输入执行SQL脚本,适合自动化部署场景。
# 导入整个数据库 mysql -u [用户名] -p[密码] [数据库名] < [输入文件.sql] # 示例:导入backup.sql到mydatabase mysql -u root -p mydatabase < backup.sql
使用
LOAD DATA导入文本文件处理大文本数据时效率显著高于逐条INSERT语句。
LOAD DATA INFILE '/tmp/employees.txt' INTO TABLE employees FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
关键注意事项
事项 解决方案 权限控制 导出需SELECT权限,导入需INSERT/CREATE权限 字符集处理 导出时添加 --default-character-set=utf8mb4避免乱码大文件处理 使用 --single-transaction(InnoDB)避免锁表,或分表导出安全性 命令行密码建议仅用 -p后手动输入,避免-p密码明文暴露完整迁移示例
数据库跨服务器迁移
# 源服务器导出 mysqldump -u root -p mydatabase > backup.sql # 传输文件(示例使用scp) scp backup.sql user@remote_server:/tmp/ # 目标服务器导入 mysql -u root -p newdatabase < /tmp/backup.sql
CSV文件双向转换
-- 导出为CSV SELECT * INTO OUTFILE '/tmp/data.csv' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM mytable; -- 导入CSV LOAD DATA INFILE '/tmp/data.csv' INTO TABLE mytable FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
推荐阅读
- 上一篇: 空域名@不能有CNAME 记录的解决方法
- 下一篇: Mysql忘记密码如何重置密码
文章标签:
版权声明: 本文除特别说明外均由 麒麟在线 原创
本文链接: https://www.70ol.com/jishu/326.html,尊重共享,欢迎转载,请自觉添加本文链接,谢谢!
分享本文: 请填写您的分享代码。
呃 本文暂时没人评论 来添加一个吧
发表评论