首页 公告 项目 RSS

⬇️⬇️⬇️ 欢迎关注我的 telegram 频道和 twitter ⬇️⬇️⬇️


联系方式: Twitter Github Email Telegram

如何删除一个mysql数据库

May 20, 2025 本文有 402 个字 需要花费 1 分钟阅读

简介

好久没有写过博客了,水一下,公司总有很多数据库需要同步来同步去,然后临时使用的,有的项目线上关闭了,但是数据库没有删除,所以这些数据库就变成了薛定谔的数据库,可能不删除一辈子都不会被用到,一删除第二天就有人在群里吼了

操作

对于这种现象,我创建了一个脚本

#!/bin/bash

# 定义数据库用户名和密码
DB_USER=""
DB_PASS=""
DB_HOST=""
DB_PORT=""
DB_NAME=""
NEW_DB=arc_${DB_NAME}



# 创建目标数据库(如果不存在)
mysql -u${DB_USER} -p${DB_PASS} -h ${DB_HOST} -P ${DB_PORT} -e "CREATE DATABASE IF NOT EXISTS \`$NEW_DB\`"

# 获取源数据库的所有表名
# 获取源数据库的所有表名,并将其赋值为一个列表
list_table=$(mysql -u${DB_USER} -p${DB_PASS} -h ${DB_HOST} -P ${DB_PORT} --batch --skip-column-names -e \
    "SELECT table_name FROM information_schema.TABLES WHERE TABLE_SCHEMA='$DB_NAME'")

# 遍历表名并重命名表
for table in $list_table; do
    echo "Processing table: $table"
    mysql -u${DB_USER} -p${DB_PASS} -h ${DB_HOST} -P ${DB_PORT} -e "RENAME TABLE \`$DB_NAME\`.\`$table\` TO \`$NEW_DB\`.\`$table\`"
    if [ $? -eq 0 ]; then
        echo "Successfully renamed table: $table"
    else
        echo "Failed to rename table: $table" >&2
    fi
done

首先,创建一个归档数据库,然后把所有的表都移动到这个归档数据库中,然后等上个3个月,如果没人在群里bb,那么就可以直接删除这个归档数据库了,如果有人bb,那么就把数据库从归档数据库移到原来的数据库中

欢迎关注我的博客www.bboy.app

Have Fun