赞
踩
摘要:
Docker容器部署的mysql5.7版本遇到使用AutoMYSQLBackup备份失败了,反复修改automysqlbackup.conf也不起效。这里推荐一种新的办法绕开老路子直接备份。
目录
Docker 版本: 23.0.2,Mysql 版本:mysql:5.7 使用方法的一个前提是docker部署的mysql是恩能够正常使用的。如果不能正常使用请绕路哈。
离线部署: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 引入的,通常用于存储有关列统计信息的元数据。
确认你的 MySQL 版本是否支持 COLUMN_STATISTICS
表:
SELECT VERSION();
COLUMN_STATISTICS
表是 MySQL 8.0 版本的特性。如果你使用的是 5.x 版本,可能不会有这个表。
information_schema
表确认 information_schema
中的表是否存在:
- USE information_schema;
- SHOW TABLES;
mysqldump
在 MySQL 8.0 中引入了 COLUMN_STATISTICS
选项,但 MySQL 5.7 并不支持它。因此,你需要在备份过程中禁用此选项。
打开 automysqlbackup
的配置文件 /etc/automysqlbackup/automysqlbackup.conf
,在配置文件中找到 mysqldump
相关的设置,并添加 --skip-column-statistics
参数。
例如,如果你的配置文件中有一行定义 mysqldump
选项,你可以这样修改:
- # 如果有类似这一行: # OPT="--single-transaction --quick --lock-tables=false"
-
- # 修改为: OPT="--single-transaction --quick --lock-tables=false --skip-column-statistics"
确保 root
用户具有足够的权限。运行以下命令以授予必要的权限:
GRANT SELECT, LOCK TABLES ON *.* TO 'root'@'192.168.100.148'; FLUSH PRIVILEGES;
在命令行中手动运行 mysqldump
以确保没有错误:
mysqldump --skip-column-statistics -u root -p --all-databases > backup.sql
如果你仍然遇到 mysqldump
错误,建议做以下几步:
确保你的 AutoMySQLBackup
配置文件中的 MySQL 用户和密码正确,并且用户具有足够的权限。
查看 MySQL 错误日志,以获得更多的错误信息。MySQL 错误日志的位置通常在 /var/log/mysql/
或 /var/log/mysqld.log
。
尝试手动运行 mysqldump
命令以检查是否可以成功备份单个数据库:
mysqldump -u root -p your_database_name > test_backup.sql
如果你使用的 MySQL 版本较旧,可能需要考虑升级到最新版本,以解决兼容性问题。
以上方法如果可以解决问题下面的方法就不要看了,我自己都有点嫌弃O(∩_∩)O哈哈~
- mkdir -p /etc/automysqlbackup/mysql-client-offline
- cd /etc/automysqlbackup/mysql-client-offline
- vim backup.sh
- #!/bin/bash
-
- # 创建备份目录
- BACKUP_DIR="/var/backup/db/daily"
-
- # 创建备份文件名
- TIMESTAMP=$(date +"%Y%m%d")
- seata="$BACKUP_DIR/seata-$TIMESTAMP.sql"
- nacos="$BACKUP_DIR/nacos-$TIMESTAMP.sql"
-
- # 执行备份
- # 压缩备份文件(可选)
- gzip $wk_hrm_single
- docker exec -i mysql /bin/bash -c 'mysqldump -u****** -p******* --port=330612 seata' > $seata
- # 压缩备份文件(可选)
- gzip $seata
- docker exec -i mysql /bin/bash -c 'mysqldump -u****** -p****** --port=330612 nacos' > $nacos
- # 压缩备份文件(可选)
- gzip $nacos
chmod +x backup.sh
/etc/automysqlbackup/mysql-client-offline/backup.sh
- #编辑定时任务
- crontab -e
- #每天凌晨1点执行备份
- 0 1 * * * /etc/automysqlbackup/mysql-client-offline/backup.sh
总结
现阶段大家对于容器部署的热度越来越高,带来便利的同时个别技术也要同步去了解 链接:数据库备份 - automysqlback- Error: Dependency programs are missing. mysql ……没有找到?-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。