AutoMySQLBackup execution.. Backup failed Docker摆设mysql 主动备份失败 ...

打印 上一主题 下一主题

主题 801|帖子 801|积分 2403

摘要:
Docker容器摆设的mysql5.7版本遇到使用AutoMYSQLBackup备份失败了,反复修改automysqlbackup.conf也不起效。这里推荐一种新的办法绕开老路子直接备份。
目次
一、环境介绍
二、AutoMYSQLBackup 
三、问题形貌
四、解决思路
4.1第一种解决思路
4.1.1确认 MySQL 版本
4.1.2检查 information_schema 表
4.1.3禁用 COLUMN_STATISTICS
a.设置文件
b. 验证权限
c. 测试备份
d. 验证设置
e. 检查错误日志
f. 手动测试
g. 更新 MySQL
4.2第二种解决思路
4.2.1创建文件
4.2.2授权
4.2.3 实行一下
五、做成定时使命


一、环境介绍

Docker 版本: 23.0.2,Mysql 版本:mysql:5.7 使用方法的一个前提是docker摆设的mysql是恩可以或许正常使用的。如果不能正常使用请绕路哈。
二、AutoMYSQLBackup 

离线摆设:automysqlbackup-v3.0_rc6.tar.gz 
https://cloud.189.cn/t/ANNr2yMzYVvy (访问码:jaz8)
三、问题形貌


during AutoMySQLBackup execution.. Backup failed
Error log below..
mysql: [Warning] Using a password on the command line interface can be insecure.
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysqldump: Couldn't execute 'SELECT COLUMN_NAME,                       JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"')                FROM information_schema.COLUMN_STATISTICS                WHERE SCHEMA_NAME = 'mysql' AND TABLE_NAME = 'columns_priv';': Unknown table 'COLUMN_STATISTICS' in information_schema (1109)
网上大部分的回答都是版本5.7导致没办法查到COLUMN_STATISTICS 表;COLUMN_STATISTICS是 MySQL 8.0 引入的,通常用于存储有关列统计信息的元数据。
四、解决思路

4.1第一种解决思路

4.1.1确认 MySQL 版本

确认你的 MySQL 版本是否支持 COLUMN_STATISTICS 表:
  1. SELECT VERSION();
复制代码
COLUMN_STATISTICS 表是 MySQL 8.0 版本的特性。如果你使用的是 5.x 版本,大概不会有这个表。
4.1.2检查 information_schema 表

确认 information_schema 中的表是否存在:
  1. USE information_schema;
  2. SHOW TABLES;
复制代码
4.1.3禁用 COLUMN_STATISTICS

mysqldump 在 MySQL 8.0 中引入了 COLUMN_STATISTICS 选项,但 MySQL 5.7 并不支持它。因此,你需要在备份过程中禁用此选项。
a.设置文件

打开 automysqlbackup 的设置文件 /etc/automysqlbackup/automysqlbackup.conf,在设置文件中找到 mysqldump 相关的设置,并添加 --skip-column-statistics 参数。
例如,如果你的设置文件中有一行定义 mysqldump 选项,你可以如许修改:
  1. # 如果有类似这一行: # OPT="--single-transaction --quick --lock-tables=false"
  2. # 修改为: OPT="--single-transaction --quick --lock-tables=false --skip-column-statistics"
复制代码
b. 验证权限

确保 root 用户具有充足的权限。运行以下命令以授予必要的权限:
  1. GRANT SELECT, LOCK TABLES ON *.* TO 'root'@'192.168.100.148'; FLUSH PRIVILEGES;
复制代码
c. 测试备份

在命令行中手动运行 mysqldump 以确保没有错误:
  1. mysqldump --skip-column-statistics -u root -p --all-databases > backup.sql
复制代码
如果你仍然遇到 mysqldump 错误,建议做以下几步:
d. 验证设置

确保你的 AutoMySQLBackup 设置文件中的 MySQL 用户和密码正确,而且用户具有充足的权限。
e. 检查错误日志

查看 MySQL 错误日志,以得到更多的错误信息。MySQL 错误日志的位置通常在 /var/log/mysql/ 或 /var/log/mysqld.log。
f. 手动测试

尝试手动运行 mysqldump 命令以检查是否可以成功备份单个数据库:
  1. mysqldump -u root -p your_database_name > test_backup.sql
复制代码
g. 更新 MySQL

如果你使用的 MySQL 版本较旧,大概需要思量升级到最新版本,以解决兼容性问题。
以上方法如果可以解决问题下面的方法就不要看了,我自己都有点嫌弃O(∩_∩)O哈哈~
4.2第二种解决思路

4.2.1创建文件

  1. mkdir -p /etc/automysqlbackup/mysql-client-offline
  2. cd /etc/automysqlbackup/mysql-client-offline
  3. vim backup.sh
复制代码
  1. #!/bin/bash
  2. # 创建备份目录
  3. BACKUP_DIR="/var/backup/db/daily"
  4. # 创建备份文件名
  5. TIMESTAMP=$(date +"%Y%m%d")
  6. seata="$BACKUP_DIR/seata-$TIMESTAMP.sql"
  7. nacos="$BACKUP_DIR/nacos-$TIMESTAMP.sql"
  8. # 执行备份
  9. # 压缩备份文件(可选)
  10. gzip $wk_hrm_single
  11. docker exec -i mysql /bin/bash -c 'mysqldump -u****** -p*******  --port=330612  seata' >  $seata
  12. # 压缩备份文件(可选)
  13. gzip $seata
  14. docker exec -i mysql /bin/bash -c 'mysqldump -u****** -p******  --port=330612  nacos' >  $nacos
  15. # 压缩备份文件(可选)
  16. gzip $nacos
复制代码
4.2.2授权

  1. chmod +x backup.sh
复制代码
4.2.3 实行一下

  1. /etc/automysqlbackup/mysql-client-offline/backup.sh
复制代码

五、做成定时使命

  1. #编辑定时任务
  2. crontab -e
  3. #每天凌晨1点执行备份
  4. 0 1 * * * /etc/automysqlbackup/mysql-client-offline/backup.sh
复制代码
总结
现阶段大家对于容器摆设的热度越来越高,带来便利的同时个别技能也要同步去了解 链接:数据库备份 - automysqlback- Error: Dependency programs are missing. mysql ……没有找到?-CSDN博客
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表