mysql_数据库(或指定表)的备份(mysqldump)和到导入的若干方案/数据的导入(Navicat:excel的批量导入到某一张表)
文章目录
mysql_数据库(或指定表)的备份和到导入的若干方案/数据的导入(Navicat:excel的批量导入到某一张表)
references
- command line - How to run SQL script in MySQL? - Stack Overflow
- How to Export a MySQL Database?
- How to Rename a Database in MySQL | Tutorial by Chartio
mysqldump文档:
重命名数据库
- 较新版本的mysql 不再支持直接重命名数据库
- 可以采用的策略:
- 备份数据库数据(结构+数据)
新建一个数据库(指定命名为想要的名字)
将数据导入到新名字的数据库中
使用命令行方案
- 高效(推荐)
备份(导出整个数据库)
- 使用mysqldump命令来导出数据库(为一个完整,保持依赖建表顺序的sql文件,这一点很重要,如果每个表分开导出,那么在导入的时候,需要有严格的顺序(因为某些外键的约束关系,被参考表需要先建立))
mysqldump for linux(debain-like)
- 下面的语句是在linux下执行的
sudo mysqldump -u root -p1 ela4 > ela4.sql
- 上述命令分为三个部分
- 选择用户信息并,并以该用户的身份登录数据库
- 选择数据库(名字)
- 导出到指定文件
- 上述命令分为三个部分
mysqldump for windows
即,较linux将sudo去掉
mysqldump -u root -p1 ela4 > ela4.sql
导出指定的表
同样的,在终端(cmd/powershell/bash上执行,而不是在登录mysql后执行)使用的是
mysqldump
- 也不要误写为
mysql
命令!- 导出后记得检查
例如,导出ela4数据库中的指定表(word_star)
mysqldump -u root -p1 ela4 word_star > word_start.sql
- cat word_start.sql
导入备份的文件(sql)
如果是在windows下,
- 先登录到mysql
- 选中某个需要导入备份内容的数据库(如果没有合适的数据库,请手动创建数据库)
- 执行备份的sql文件
mysql> source <backup_sql_file>
- 例如
mysql> source c:/users/cxxu/desktop/ela4.sql
- 此命令假设被导入的文件位于桌面(填写实际路径即可)
不恰当的权限可能的导致的问题(optional)
- 如果您的数据库中存储的字符比较乱,可能导致导出时出现乱码(异常报错(
mysqldump: Got errno 2 on write
)) - 我在windows下使用了scoop安装的 sudo 命令,在导出的时候出现了上述异常(当然,一般的用户在windows下没有sudo可用)
- 如果您也有类似环境,请不要在windows上使用sudo!
IDEA&dump
- 在路径中填写您的mysql安装目录下的
mysqldump.exe
使用GUI方案
navicate
- 简单
- 导出形式多样直观
- 但是导入的时候需要考虑表间依赖关系,较为繁琐
其他GUI方案
- IDEA/DataGrip
- Oracle mysql GUI
批量导入excel 文件
在我使用的过程中没有发现能够较好的导入多张表格的方式(数据量较大,分成了多个excel)
-
可以使用
python pandas
将这些表批量的合并,再输出一整份的表格-
该方案可以方便的对数据进行调整(譬如去重操作/排序操作/代码量总体较少)
但是有些地方需要注意,(某些字符串会被解释成特殊的python对象,需要加参数设定)
-
os文件读取
-
pandas 文件读取以及合并(append)
-
mport os import pandas as pd ## dir='d:/repos/pythonLearn/pandasLearn/out/' files=os.listdir(dir) for item in files: p=item.index('~') order_str=item[:p] order=int(order_str) # print(order) files.sort(key=lambda item:int(item[:item.index('~')])) sorted_file_list=files # print(sorted_file_list) # print(files) os.chdir(dir) dfs=pd.DataFrame() # dfs=pd.read_excel(sorted_file_list[0]) sample=sorted_file_list[:] for item in sample: # item_df=pd.read_excel(item,dtype=str)#NULL还是会被解析为NAN item_df=pd.read_excel(item,na_filter=False)#OK,it keep the `NULL` string in excel # print(item_df) # df.append()并不会原地修改,而是会返回一个处理好的dataframe(这和sort)函数相反. dfs=dfs.append(item_df)#,ignore_index=True仅仅是将index改为0...n shape=dfs.shape print(shape) dfs_raw=dfs.loc[:,'spelling':] # print(dfs) ## drop duplicated row of column value unique_df=dfs_raw.drop_duplicates(subset=['spelling'],keep='first') unique_df.to_excel(dir+"../"+"Integer5500.xlsx",index=False)
-
-
-
使用excel手工的合并
-
VBA程序合并
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)