我有一个名为 dump 的MySQL用户,拥有以下权限:
GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%'
我想使用 dump 用户倾倒所有数据(包括触发器和存储过程)。我以以下方式调用mysqldump:
mysqldump -u dump -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
除了触发器缺失之外,转储文件的一切都正常!!
如果我使用MySQL的root用户尝试使用mysqldump,则触发器会被正确导出:
mysqldump -u root -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
所以,我猜这是一个权限问题...我的dump MySQL用户需要哪些额外授权才能正确执行完整的转储?
LOCK TABLES
...使用5.5.49-MariaDB
。 - 0xC0000022L--opt
、--lock-tables
、--lock-all-tables
、--single-transaction
以及相应的--skip-*
变体)。 - Torque