mysql数据表导出导入过程详解

mysql数据表导出导入过程详解

码农世界 2024-05-19 后端 62 次浏览 0个评论

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

mysql数据表导出导入过程详解

mysql数据表导出导入过程详解

mysql数据表导出导入过程详解

mysql数据表导出导入过程详解

mysql数据表导出导入过程详解

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注运维)

mysql数据表导出导入过程详解

正文

#!/bin/bash

需要导出的表名列表

TABLE_LIST=( “table_1” “table_2” “table_3” “table_4” )

循环导出每个表

for i in “KaTeX parse error: Expected 'EOF', got '#' at position 26: …ST[@]}" do #̲ 构造导出文件名 FI…{i}_20230525.sql”

echo ${FILE_NAME}

# 使用 mysqldump 命令导出表数据

mysqldump --skip-lock-tables --set-gtid-purged=OFF -h 10.x.x.x -P 3306 -utest_user -p’test_password’ test_db ${i} > ${FILE_NAME}

#如果导出数据库:

#mysqldump --skip-lock-tables --set-gtid-purged=OFF -h 10.x.x.x -P 3306 -utest_user -p’test_password’ test_db > ${FILE_NAME}

done

编写shell脚本来循环导入多张数据表。

#!/bin/bash

需要导入的表名列表

TABLE_LIST=( “table_1” “table_2” “table_3” “table_4” )

循环导入每个表

for i in “KaTeX parse error: Expected 'EOF', got '#' at position 26: …ST[@]}" do #̲ 构造导出文件名 FI…{i}_20230525.sql”

echo ${FILE_NAME}

# 使用 mysqldump 命令导入表数据

mysql -h 10.x.x.x -P 3306 -utest_user -p’test_password’ 导入的库名 < KaTeX parse error: Expected 'EOF', got '#' at position 18: …ILE\_NAME} #̲如果导入的是数据库(此时{i}是库名):

#mysql -h 10.x.x.x -P 3306 -utest_user -p’test_password’ ${i} < ${FILE_NAME}

done

4.验证是否导出成功:

查看sql文件最后一行。

tail -n 1 xxx.sql

如果有dump completed on 日期。  
 说明dump成功了,有时候因为会话中断等原因,dump失败,就没有这一行。
二、sql文件从云服务器备份到本地Linux服务器:  
 1.压缩文件下所有文件

tar -zcvf mysql_dump_20230525.tar.gz ./mysql_dump/

2.1使用scp传到本地服务器:(但是scp传大文件容易断掉stalled)

本地服务器运行:

scp username@remote:/path/to/file /path/to/destination

scp 用户名@云服务器ip:云服务器文件路径 本地文件夹路径

如果要将整个目录传输到本地Linux服务器中,可以使用-r参数,命令如下:

scp -r 用户名@云服务器ip:云服务器文件夹路径 本地文件夹路径

输入命令后按下回车键,然后输入云服务器的密码,就可以将文件从云服务器传输到本地Linux服务器了。

如果云服务器使用密钥登录时,需要添加一个-i的参数,并输入对应密钥的路径即可。

scp -i 对应密钥地址 用户名@云服务器ip:云服务器文件路径 本地文件夹路径

如果报权限错误,那么需要 chmod 400 修改一下密钥文件的权限。

即:

chmod 400 密钥文件

2.2.也可以使用rsync传输文件:(可以断点续传,断了以后,重新运行该命令即可)

rsync -P -e “ssh -i 密钥路径” 用户名@云服务器ip:云服务器文件路径 本地文件夹路径

常用参数:

–progress: 显示拷贝进度

–partial:保留不完整文件,实现断点续传

–partial-dir=DIR:指定不完整文件的存储目录,而不是默认存储到目的地目录。

-P:包含–progress和–partial

–rsh=ssh:使用ssh方式传输文件,注意:如果之前设置过ssh免密码登录,那么此时也就不需要密码了,非常方便

-v:显示详细信息

-a:归档模式。也就是以递归方式传输文件,并保持所有文件属性。

-r:递归方式传输文件

3.解压缩文件:

tar -xzvf mysql_dump_20230525.tar.gz -C /home/mysql_dump # -C 指定解压路径

三、导入sql文件:  
 1.linux下mysql导入sql文件方法1:  
 进入linux命令命令行下

mysql -uroot -p 回车 输入密码

source fileName.sql

注意fileName.sql要有路径名,例如:source /home/user/data/fileName.sql
2.linux下mysql导入sql文件方法2:  
 进入linux命令命令行下:

mysql -uroot -p database < fileName.sql

注意fileName.sql要有路径名
3.导入数据库时报错:Variable ‘time\_zone’ can’t be set to the value of ‘NULL’  
 这个问题的原因是因为数据sql文件内部有注释,去掉就可以了(也可以不用管),不影响数据导入。
> 
> 在导入 SQL 文件到 MySQL 数据库时,使用 `mysql` 命令和 `source` 命令都是常见的方式,它们各有优劣和适用场景。
> 
> 
> 1. `mysql` 命令导入:使用 `mysql` 命令可以直接将 SQL 文件导入到 MySQL 数据库。您可以使用以下命令执行导入: ```mysql -u your\_username -p your\_database < your\_sql\_file.sql
> 
> 
> 
> ```
> 
> 2. `source` 命令导入:在 MySQL 命令行界面中,可以使用 `source` 命令来执行 SQL 文件。首先,进入 MySQL 命令行界面,然后使用以下命令导入 SQL 文件:    ```source your_sql_file.sql    ```
> 这种方式的优点是可以在 MySQL 命令行界面中直接执行,适用于需要与数据库交互的复杂导入任务。它还可以用于执行部分 SQL
> 文件或在交互式会话中逐行执行 SQL 语句。
> 
> 在效率方面,两种方式的性能差异通常不大。导入速度更多取决于 SQL 文件的大小、数据库服务器的性能和网络连接质量。对于大型 SQL
> 文件,可能会花费一些时间来完成导入,无论使用哪种方式。
> 
> 总的来说,对于简单的导入任务,使用 `mysql` 命令是更常用和方便的方式。而对于需要与数据库进行交互或执行复杂导入任务的情况,使用
> `source` 命令更为适合。
> 
> 建议根据具体情况选择合适的方式,并在实际操作中进行测试和比较,以确定哪种方式最适合您的需求。
> 
> ```
> 
> 
参考文章:  
![](https://img-blog.csdnimg.cn/img_convert/9a8cb5f8c0ec69e6499adead0da6e95b.png)
最全的Linux教程,Linux从入门到精通
======================
1.  **linux从入门到精通(第2版)**
2.  **Linux系统移植**
3.  **Linux驱动开发入门与实战**
4.  **LINUX 系统移植 第2版**
5.  **Linux开源网络全栈详解 从DPDK到OpenFlow**
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/59742364bb1338737fe2d315a9e2ec54.png)
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
![华为18级工程师呕心沥血撰写3000页Linux学习笔记教程](https://img-blog.csdnimg.cn/img_convert/9d4aefb6a92edea27b825e59aa1f2c54.png)
**本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。**
> 需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
![img](https://img-blog.csdnimg.cn/img_convert/d1eb9013161882b2d0ef619e338411b8.jpeg)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注运维)**
[外链图片转存中...(img-2SKSUg9c-1713382719081)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

转载请注明来自码农世界,本文标题:《mysql数据表导出导入过程详解》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,62人围观)参与讨论

还没有评论,来说两句吧...

Top