当前位置: 首页 > 科技观察

AutoMySQL备份遇到的几个问题

时间:2023-03-18 21:54:19 科技观察

本文转载自微信公众号《DBA的杂记》,作者潇湘隐士。转载本文请联系DBA杂念公众号。1:使用AutoMySQLBackup时遇到错误:Error:Dependencyprogramsaremissing。也许它们不在$PATH中。退出使用AutoMySQLBackup备份MariDB时,手动执行shell脚本/mysql_backup/scripts/automysqlbackup/mysql_backup/scripts/conf/myserver.conf中的脚本即可。但是在job(crontab)中执行脚本时遇到如下错误:Note:Parsedconfigfile/mysql_backup/scripts/conf/myserver.conf.Note:/etc/automysqlbackup/automysqlbackup.confwasnotfound-noglobalconfigfile.Error:依赖程序丢失。也许它们不在$PATH中。退出。这个问题一般是环境变量引起的。需要修改配置文件myserver.conf中的PATH参数,使用命令ps-ef|grep-imysqld找到mysqldump所在路径,在myserver.conf中配置参数PATH即可解决问题。案例看起来像这样:/bin#PATH=${PATH}:FULL_PATH_TO_YOUR_DIR_CONTAINING_MYSQL:FULL_PATH_TO_YOUR_DIR_CONTAINING_MYSQLDUMPPATH=${PATH}:/app/mariadb/bin2:mysqldump:无法执行'SHOWFIELDSFROMxxx':查看xtable或xxxx'引用(在)列(s)orfunction(s)ordefiner/invokerofviewlackrightstousethem(1356)AutoMySQLBackup实际上是一个封装了mysqldump的shell脚本。有一种情况,具体报错如下:========================================================================================================================================。...............................................................................................................................................AutoMySQL备份执行期间报告的错误..BackupfailedErrorlogbelow..mysqldump:Couldn'texecute'SHOWFIELDSFROM`xxx`':Viewxxxx.xxxx'referencesinvalidtable(s)orcolumn(s)orfunction(s)ordefiner/invokerofviewlackrightstousethem(1356)................................................................................................................................................=========================================================================================================================================如果遇到这个问题,首先检查账户权限,AutoMySQLBackup使用的帐户是dbbackup。具体权限如下。一般来说,这样的权限是没有问题的。';GRANTEXECUTEONsys.*TO'dbbackup'@'127.0.0.1';FLUSHPRIVILEGES;使用dbbackup登录MySQL,切换到对应的用户数据库,执行如下命名,果然遇到了权限问题。mysql>SHOWFIELDSFROM`xxx`;ERROR1356(HY000):View'xxx.xxx'referencesinvalidtable(s)orcolumn(s)orfunction(s)ordefiner/invokerofviewlackrightstousethemmysql>Thenusetherootaccounttoviewtheviewdefinitionmysql>showcreateviewxxx\G;最后一一排查,发现在视图xxx中引用了一个Function,但是用户dbbckup没有这个函数的执行权限,所以报这个错误。给用户授予以下权限后,问题解决GRANTEXECUTEONxxx.*TO'dbbackup'@'127.0.0.1';FLUSHPRIVILEGES;关于这个问题,也可能是因为视图引用了无效的表、列或函数,不一定是视图的定义者/调用者缺少调用它们的权限。