首页 > 代码库 > 在备份和导入mysql数据库遇到的几个问题

在备份和导入mysql数据库遇到的几个问题

一、怎么导出和备份

 

1、普通方法,运用工具或者命令直接导出sql脚本,以navicat为例,直接选中数据库,转储sql文件

技术分享

 

问题:当有视图或者函数执行失败时不好处理

 

2、视图函数和表数据分开导出

以navicat为例:

①先创建一个备份,包含视图和表:直接点击数据库下面的备份,然后新建备份。

技术分享

②生成完备份之后,直接选择提取sql,提取的时候可以选择是表、视图、或是函数,这样就把表和视图脚本分离开了

 

二、生成完导出和备份的sql文件之后就是导入了,这里解决导入过程中遇到的几个问题:

 

1、error :mysql server has gone away

 报这个错的原因很多,最有可能的一个:

你的sql查询文件太大了,需要修改mysql配置,直接在my.ini文件的mysqld节点下修改:max_allowed_packet=16777216就好了。

 

2、error:the user specified as a definer (‘root‘@‘%‘) does not exist

这是由于当前用户执行某些sql时权限不足导致的,直接赋予当前用户所有权限就行了:

grant all privileges on *.* to root@"%" identified by ".";

flush privileges;

 

注意:导入过程中有可能出现多个数据库相互依赖和多个视图相互依赖的情况,这要调整执行顺序方能正确完成导入。

 

在备份和导入mysql数据库遇到的几个问题