首页
学习
活动
专区
圈层
工具
发布

技术分享 | 改写 mysqldump 解决 DEFINER 问题

使用 mysqldump 导出备份,然后将 SQL 文件中的对象所有者替换为导入账号。...,个人想到最简单的解决方式就是 mysqldump 导出时直接摘除掉相关属性,但是 mysqldump 本身并不提供对应参数,所以比较蛋疼,无论是原库走脚本变更或是备份后修改 SQL 文件都不是非常方便...只能看下是否可以从 mysqldump 源码中去掉 DEFINER 定义。 本次 mysqldump 改写主要有 2 个目的: 1....八、性能测试 通过 sysbench 造测试数据后,分别使用改写后的 mysqldump 与原生的 mysqldump 进行多次远程备份,查看平均耗时。...九、小结 本次通过直接修改 mysqldump 源码的方式,比较好的解决了 DEFINER 问题,另外将改写后的 mysqldump 源码拿到 Windows 环境下编译后是可以直接使用的,亲测有效,

2.3K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ERROR 1356 (HY000): View xxx references invalid definerinvoker

    让检测依赖的 表,字段,函数,definer或者invoker 表字段之类的都是没问题的. 剩下的就是definer和invoker了....创建视图的时候 如果指定 SQL SECURITY 为Definer(默认). 则只需要definer能够正常使用后面的查询语句即可....如果是definer 那就是definer去执行, 如果是invoker, 就是调用者去执行.没得权限就报错 有个小坑: 如果SQL SECURITY为INVOKER , 然后使用definer账号去查询该视图...参考: https://dev.mysql.com/doc/refman/8.0/en/stored-objects-security.html 补充 今天有同事使用mysqldump导出数据的时候也遇到这个报错了...找回原基表, 基本上不可能 3. mysqldump导出的时候加上 --force 强制导出, 忽略报错

    1.2K30

    mysqldump命令详解 Part 9 mysqldump命令总结

    MySQL测试数据的构造 [MySQL学习笔记]2. mysqldump命令详解 Part 1 [MySQL学习笔记] 3.mysqldump命令详解 Part 2 -备份全库 mysqldump命令详解...Part 3-备份单表 [MySQL故障处理]记一次innobackupex导致的从库无法同步的问题 mysqldump命令详解 4-按条件备份表数据 mysqldump命令详解 5-导出事件,...函数和存储过程 mysqldump命令详解 Part 6- --master-data参数的使用 mysqldump命令详解 Part 7- -single-transaction 参数的使用 mysqldump...获取帮助信息 mysqldump --help ---- 好了 关于mysqldump的相关内容就这么多了 下期专题再见 可点击阅读原文获得更好的阅读体验,推荐在PC端阅读 也可在公众号内的站内搜索...mysqldump 搜索相关内容 或直接打开个人网页搜索 http://www.zhaibibei.cn

    2.6K30

    mysqldump使用详解

    安装目录 数据库目录 /var/lib/mysql/ 配置文件 /usr/share/mysql(mysql.server命令及配置文件) 相关命令 /usr/bin(mysqladmin mysqldump...1)导出所有数据库 格式:mysqldump -u [数据库用户名] -p -A>[备份文件的保存路径] 2)导出数据和数据结构 格式:mysqldump -u [数据库用户名] -p [要备份的数据库名称...c:\> mysqldump -h localhost -u root -p mydb >e:\MySQL\mydb.sql 然后输入密码,等待一会导出就成功了,可以到目标文件中检查是否成功。...c:\> mysqldump -h localhost -u root -p mydb --add-drop-table >e:\MySQL\mydb_stru.sql 备注:-h localhost...3)只导出数据不导出数据结构 格式: mysqldump -u [数据库用户名] -p -t [要备份的数据库名称]>[备份文件的保存路径] 4)导出数据库中的Events 格式:mysqldump

    3.4K20

    MySQLdump常用命令

    MySQLdump常用 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.sql 还原:系统命令行: MySQL -uroot -p123456 常见选项...: --all-databases, -A: 备份所有数据库 --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump把第一个名字参数作为数据库名,后面的作为表名。...-uroot -p123456 -A >F:\all.sql 2.备份全部数据库的结构(加 -d 参数) mysqldump -uroot -p123456 -A-d>F:\all_struct.sql...3.备份全部数据库的数据(加 -t 参数) mysqldump -uroot -p123456 -A-t>F:\all_data.sql 4.备份单个数据库的数据和结构(,数据库名mydb) mysqldump...mysqldump -uroot -p123456 mydb-t>F:\mydb.sql 7.备份多个表的数据和结构(数据,结构的单独备份方法与上同) mysqldump -uroot -p123456

    2.1K10

    MySQL迁移操作手册:一次完整迁移的实战路径

    很多老库是latin1存的UTF-8数据,靠客户端"硬解"才显示正常,这种库直接mysqldump导出来大概率乱码。...三、数据导出:mysqldump的参数决定后续的坑有多少mysqldump看起来是个简单的命令,但参数用错一个,后面就是大麻烦。...触发器默认带DEFINER属性,目标库如果不存在对应账号,导入后触发器会失效但不会报错:SHOW TRIGGERS FROM your_db;SELECT name, definer, body FROM...mysql.proc WHERE db = 'your_db';检查返回结果,如果definer指向的账号在目标库不存在,需要重建这些对象或修改DEFINER为CURRENT_USER。...在国产商业数据库上,有时候DEFINER问题还会碰到函数权限问题,需要额外授权。连接测试和压测。 用应用账号连接目标库,确认权限配置正确。

    68710
    领券