mysql 免密码备份_mysql 多库不同主机免密码定时备份

设置mysql免密码登陆配置(前提当前主机安装了"mysql-client")

可以避免 Warning: Using a password on the command line interface can be insecure.

[root@xxxx-zabbx-12l ~]# mysql_config_editor set --login-path=confdb --user=xxxx --socket=/tmp/

dingding.log mysql.sock .X11-unix/

.font-unix/ sess_vutauod8dd2etpnugs0peb9845 .XIM-unix/

hsperfdata_root/ systemd-private-4fe3e89c1d0d4336b0f8eb906b922e7a-vgauthd.service-WuBPGJ/ zabbix_server_5297.pinger

.ICE-unix/ systemd-private-4fe3e89c1d0d4336b0f8eb906b922e7a-vmtoolsd.service-6bsXLG/ zabbix_server_alerter.sock

jetty-0.0.0.0-8080-xwiki-_xwiki-any-2760222951236920400.dir/ .Test-unix/ zabbix_server_preprocessing.sock

[root@xxxx-zabbx-12l ~]# mysql_config_editor set --login-path=confdb --host=192.168.0.68 --port=3306 --user=xxxx --socket=/tmp/mysql.sock --password

Enter password:

[root@xxxx-zabbx-12l ~]# mysql --login-path=confdb

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| config |

+--------------------+

2 rows in set (0.00 sec)

mysql> use config;

mysql> show tables;

+---------------------------+

| Tables_in_config |

+---------------------------+

| app_info |

+---------------------------+

[root@xxxx-zabbx-12l ~]# mysql_config_editor print --all ##查看配置信息

[confdb]

user = xxxx

password = *****

host = 192.168.0.68

socket = /tmp/mysql.sock

port = 3306

设置定时任务&& 备份脚本编写

[root@uat-mysqlredis-214l ~]# crontab -l

30 1 * * * /usr/sbin/ntpdate 192.168.0.76 >> /var/log/ntpdate.log

10 8,11,15,18,22 * * * /usr/bin/sh /root/mysql-rdb_backup.sh

[root@uat-mysqlredis-214l ~]# cat mysql-rdb_backup.sh

#!/bin/bash

# 数据库备份脚本

# author:sean-litx 2019-11-29

PATH=/data/mysql/bin:/data/xxxx-java/bin:/data/xxxx-java/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin

date=$(date +%Y%m%d%H)

#mysql_config_editor set --login-path=rdb_home --host=192.168.0.214 --port=3306 --user=xxxx --socket=/tmp/mysql.sock --password

#mysql_config_editor set --login-path=61-rdb_tech --host=192.168.0.61 --port=3306 --user=xxxx --socket=/tmp/mysql.sock --password

#mysql_config_editor set --login-path=72-rdb_tech --host=192.168.0.72 --port=3306 --user=xxxx --socket=/tmp/mysql.sock --password

backupdir=/data/mysql-home_backup

mkdir -pv $backupdir

mysqldump --login-path=rdb_home --database -B xxxx_dt_home_rdb xxxx_dt_business_rdb | gzip > $backupdir/rdb-home-multi-${date}.sql.gz

mysqldump --login-path=72-rdb_tech --database xxxx_library_rdb | gzip > $backupdir/rdb-tech-library-${date}.sql.gz

find ${backupdir} -mtime +7 -name 'rdb-*' -exec rm -rf {} \; ##保留7天备份

gzip -d xxxxx-${date}.sql.gz #解压

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 MySQL 8.0 多库备份和还原的脚本示例: 备份脚本: ``` #!/bin/bash # MySQL backup script # MySQL credentials user="username" password="password" host="localhost" port="3306" # Other options backup_path="/path/to/backup/folder" date=$(date +"%d-%b-%Y") # Backup filename filename="mysql_backup_$date.sql" # Backup command mysqldump -u $user -p$password --host=$host --port=$port --all-databases > $backup_path/$filename # Compression command gzip $backup_path/$filename # Remove uncompressed file rm -f $backup_path/$filename ``` 在备份脚本中,您需要将 `username`、`password`、`host` 和 `port` 替换为您的 MySQL 访问凭据。`backup_path` 变量指定备份文件应该存储在哪个文件夹中,`date` 变量用于生成备份文件名。 在备份期间,使用 `mysqldump` 命令备份所有数据库,并将其保存到指定的文件夹中。然后,使用 `gzip` 命令将备份文件压缩为 `.gz` 文件。最后,删除原始文件。 还原脚本: ``` #!/bin/bash # MySQL restore script # MySQL credentials user="username" password="password" host="localhost" port="3306" # Other options backup_path="/path/to/backup/folder" filename="mysql_backup_$date.sql.gz" # Restore command gunzip < $backup_path/$filename | mysql -u $user -p$password --host=$host --port=$port ``` 在还原脚本中,您需要使用与备份脚本相同的 `username`、`password`、`host` 和 `port` 值。`backup_path` 变量应该与备份脚本中的相同。`filename` 变量包含备份文件名,它必须与备份脚本中的相同。 还原期间,使用 `gunzip` 命令解压缩备份文件并将其传递给 `mysql` 命令,将数据还原到 MySQL 中。请注意,此脚本假定备份文件是 `.gz` 压缩文件。如果备份文件没有压缩,请删除 `gunzip` 命令并将备份文件传递给 `mysql` 命令。如果备份文件是其他压缩格式,请使用适当的解压缩命令。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值