记 一次mysql 数据迁移
一.数据备份
进入 mysql 执行文件目录(根据实际进行切换)
cd /usr/local/mysql/bin/
1.仅备份数据表结构
1)指定数据表备份表结构
mysqldump -u root -p -d {数据库名称} {表名称1} {表名称2} > dump.sql
2)备份所有数据表的表结构
mysqldump -u root -p -d {数据库名称} > dump.sql
3)备份多个数据库的的表结构
mysqldump -u root -p -d --databases {数据库名称1} {数据库名称2} > dump.sql
4)备份所有数据库的表结构
mysqldump -u root -p -d --all-databases > dump.sql
2.同时备份表结构和数据
将上面的命令 -d 参数去掉即可
3.仅备份数据
1)方法一,进入 mysql 客户端(mysql -u root -p),使用 select sql语句
select [列名],[列名2](或者直接*) from {表名称} [where 语句] into outfile {"目标文件名称,字符串"} [options]
参数 options 可选, 默认输出到 mysql 保存数据表文件的目录
2)方法二,使用 mysqldump 命令
二.数据还原
1.还原结构/结构与数据同时还原(注意,原有数据表的表结构及数据会被覆盖清空)
登录 mysql 客户端(mysql -u root -p),直接执行指令:
source {备份文件的路径}
2.插入仅备份了数据的备份文件(注意:备份数据中是否和现有数据表中的数据冲突,如 id 等)
登录 mysql 客户端(mysql -u root -p):
load data [local] in file {备份文件路径] into table {数据表名称} [options]
参数 local: 如果使用本地备份文件
参数 options: 可选
注意:
1.在进行备份操作时,遇到了如下异常
MySQL server is running with the --secure-file-priv option so it cannot execute this statement
原始是MySQL限制了导入与导出的目录权限,只能在规定的目录下才能操作,使用sql语句 " show variables like '%secure%'; " 查看 secure-file-priv 当前值。
解决办法:
在 配置文件的 [mysqld] 下,加入如下配置项:
secure-file-priv = ""
重启数据库,然后就可以在任何目录下操作了,或者指定目录
2.由于本人配置的原因,进入 mysql 客户端时,需要进入 mysql 执行文件目录下,再执行指令,才能正常进入客户端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗