一次性删除Mysql数据库中所有表的数据,保留表结构

本文介绍了一个使用bash脚本实现的Mysql数据库备份、恢复和数据清除功能。该脚本通过mysqldump命令进行数据库备份,使用mysql命令进行数据恢复,并提供了清空数据库中所有表数据的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#/bin/bash
while [ 1 ]
do
    echo "  #############################################" 
    echo "           Quick Backup and Recovery"                   
    echo "    Source and Destination Mysql Must Be Same"
    echo "  #############################################"
    echo "    1) Back up database test"
    echo "    2) Recovery database test"
    echo "    3) Clear data in database test"
    echo "    q) Quit"
    echo -n " Your Option:"
    read option_char

    current_dir=$(pwd)
    case ${option_char} in
        "1")
            rm -f $current_dir/test_bk.sql
            mysqldump -t -c -uroot -proot test > $current_dir/test_backup.sql
            echo " Database test already backup..."
            ;;
        "2")
            mysql -u root --password='root' -e "
        use test
            source $current_dir/test_backup.sql"
            echo " Database test already recovery..."
            ;;
        "3")
            rm -f $current_dir/truncate_test.sql
        chmod 777 $current_dir
            mysql -u root --password='root' -e "
            SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM information_schema.TABLES WHERE TABLE_SCHEMA='test' into outfile '/tmp/truncate_test.sql';"
        mv /tmp/truncate_test.sql $current_dir/
            mysql -u root --password='root' -e "
        use test
        source $current_dir/truncate_test.sql"
            echo " Clear data of test successful..."
            ;;
        "q"|"quit"|"exit"|'Q'|"QUIT"|"Quit")
        break
        ;;
        *)
            echo "your option is invalid, please input again..."
            ;;
    esac
done

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值