文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

AutoMySQLBackup遇到的几个问题

2024-12-02 19:44

关注

1:使用AutoMySQLBackup时遇到错误:Error: Dependency programs are missing. Perhaps they are not in $PATH. Exiting

使用AutoMySQLBackup备份MariDB时,手工执行shell脚本中的脚本 /mysql_backup/scripts/automysqlbackup /mysql_backup/scripts/conf/myserver.conf 没有问题。但是在作业(crontab)里面执行脚本时遇到下面错误:

  1. Note: Parsed config file /mysql_backup/scripts/conf/myserver.conf. 
  2. Note: /etc/automysqlbackup/automysqlbackup.conf was not found - no global config file. 
  3. Error: Dependency programs are missing. Perhaps they are not in $PATH. Exiting. 

出现这个问题,一般是由于环境变量引起的。需要修改配置文件myserver.conf中的参数PATH,使用命令ps -ef | grep -i mysqld 找到mysqldump所在的路径后,配置myserver.conf的参数PATH即可解决问题。

案例如下所示:

  1. Default values are stored in the script itself. Declarations in 
  2. # /etc/automysqlbackup/automysqlbackup.conf will overwrite them. The 
  3. # declarations in here will supersede all other. 
  4.  
  5. # Edit $PATH if mysql and mysqldump are not located in /usr/local/bin:/usr/bin:/bin:/usr/local/mysql/bin 
  6. #PATH=${PATH}:FULL_PATH_TO_YOUR_DIR_CONTAINING_MYSQL:FULL_PATH_TO_YOUR_DIR_CONTAINING_MYSQLDUMP 
  7. PATH=${PATH}:/app/mariadb/bin 

2:mysqldump: Couldn't execute 'SHOW FIELDS FROM xxx': View xxxx.xxxx' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)

AutoMySQLBackup其实是封装了mysqldump的一个shell脚本,在一个案例中,具体报错如下所示:

 

  1. ==================================================================================================================================== 
  2. ............................................................................................................................. 
  3. Errors reported during AutoMySQLBackup execution.. Backup failed 
  4. Error log below.. 
  5. mysqldump: Couldn't execute 'SHOW FIELDS FROM `xxx`': View xxxx.xxxx' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356) 
  6.  
  7. ............................................................................................................................. 
  8. ==================================================================================================================================== 

遇到这个问题,首先检查账号权限,AutoMySQLBackup使用的账号为dbbackup,具体权限如下所示,一般而言,这样的权限是没有问题的。

  1. GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT, TRIGGER ON *.* TO 'dbbackup'@'127.0.0.1'
  2. GRANT EXECUTE ON sys.* TO 'dbbackup'@'127.0.0.1'
  3. FLUSH PRIVILEGES

使用dbbackup登录MySQL,切换到对应用户数据库,执行下面命名时,还真遇到了权限问题。

  1. mysql> SHOW FIELDS FROM `xxx`; 
  2. ERROR 1356 (HY000): View 'xxx.xxx' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them 
  3. mysql> 

然后使用root账号查看视图定义

  1. mysql> show create view xxx\G; 

最后一一排查下来,发现是视图xxx中引用了一个Function,但是用户dbbckup没有这个函数的执行权限,所以报这个错误。授予用户下面权限后,问题解决

  1. GRANT EXECUTE ON xxx.* TO 'dbbackup'@'127.0.0.1'
  2. FLUSH PRIVILEGES

关于这个问题,还有可能是因为视图引用了无效的表,列或函数,而不一定是视图的定义者/调用器缺乏调用它们的权限。

 

来源:DBA闲思杂想录内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯