博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql导入导出
阅读量:4137 次
发布时间:2019-05-25

本文共 1046 字,大约阅读时间需要 3 分钟。

查看mysql 权限:show grants for `bob`@`pc84.example.com`

 

在导入导出时候出以下问题:

ERROR 1356 (HY000) at line 2388: View 'nxsc.ts_product_attr_v' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

该问题是因为nxsc用户的权限不足造成的,查找后发现该用户没有nxsc数据库的访问权限,添加该权限后OK

 

 

ERROR 1305 (42000) at line 1980: FUNCTION nxsc.get_txn_source does not exist

该问题是由于该函数未导入造成的

 

使用mysqldump -u root -p -ntd -R --triggers=false nxsc>nxsc_trigger.sql

导出数据库触发器和函数部分

 

一定要用--triggers=false开关,否则会报错

 

ERROR 1235 (42000) at line 26: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'

 

 

dump出来的数据导入到新服务器的时候,会出现一些存储过程与视图访问的异常,有一个原因是这些routines(view + proc + func)都指定了创建者,也就是definer,definer对该routine权限有特殊含义,所以,解决方法就是记得将mysql.user表也同步过来。当然,最好是重新grant而不是操作该表。

关于存储过程的权限管理,一种是SQL SECURITY INVOKER,一种是SQL SECURITY DEFINER,也就是一种是调用者权限,一种是定义者权限,如果使用第一种,那么执行的时候是以执行者本身的权限来操作存储过程中包含的表。如果是第二种,那么执行的时候,是以该存储过程的定义者权限来操作。

 

 

注意,如果想在导入世后减少definer错误,则存储过程和触发器可以这样做:

 

update proc set definer="root@localhost";

 

view则不行

 

转载地址:http://ukqvi.baihongyu.com/

你可能感兴趣的文章
软件(项目)的分层
查看>>
菜单树
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
JAVA数据类型
查看>>
【Python】学习笔记——-6.2、使用第三方模块
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>