mysql数据库运维注意事项_关于mysql视图运维过程中的注意事项

# 今天遇到的问题

mysql备份脚本无法备份,提示错误不能锁表:

mysqldump: Got error: 1045: Access denied for user 'xxx'@'%' (using password: YES) when using LOCK TABLES

在发现问题的前一天删过一个历史遗留账号(备份脚本之前一直是运行正常的)。

在备份脚本加入 --skip-lock-tables 参数不锁表备份,提示错误:

mysqldump: Couldn't execute 'SHOW FIELDS FROM `vm_dataforradarshow`': SELECT command denied to user ''@'%' for column 'prodId' in table '表名已删除' (1143)

排错:

把 SHOW FIELDS FROM `vm_dataforradarshow` 语句放到sql中执行,也报错。这个 vm_dataforradarshow 是一个视图,忽然想起来,视图是有权限的。

里面会包含了是哪个用户创建的,并且在执行视图的时候会用这个用户去执行,结果用户昨天被删掉了,自然执行失败。备份脚本也备份失败。

(因为用的阿里云rds,也怀疑过用户权限问题,创建了一个高权限账号(相当于root),也是备份失败。)

20181018175147.jpg

之前遇到的一个问题:

测试环境数据库是user1账户,创建视图也是用user1去创建的。

到正式上,是一个独立的普通用户,比如user2,结果导入sql脚本一直失败,具体错误提示忘记了。

只要把sql脚本里,视图中的user1修改成user2才解决。

避免:

1、开发过程中尽量避免视图使用,毕竟要多耗费一次时间及系统资源。

2、开发测试环境要和正式一致,避免出现我这种账号问题。

专注于 服务器运维与web架构

E-mail:venus#rootop.org

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值