乐于分享
好东西不私藏

Java学习·第三课|卸载Navicat:用DBeaver + 自动备份脚本,效率翻倍

Java学习·第三课|卸载Navicat:用DBeaver + 自动备份脚本,效率翻倍

如果你现在还在用Navicat做数据库管理,可能已经遇到过这些问题:

  • 功能是挺强,但价格不便宜
  • 多数据库支持一般,用起来不够统一
  • 最关键的是:很多操作还是要手动做,比如备份

我也是从Navicat一路用过来的。

一开始确实顺手,但用久了之后,有两个问题越来越难受:

一是成本高(尤其是学生/个人开发者)二是效率不够(很多事情可以自动化,但它没帮你做)

直到我换成了一个工具——DBeaver

但真正让我效率翻倍的,不只是换工具,而是这两个东西一起用:

  • 用DBeaver做数据库管理(免费 + 多数据库支持)
  • 用脚本实现数据库自动备份(彻底解放双手)
本测试在macOS系统上完成,使用的是mysql数据库,数据库可视化工具为DBeaver,一个比Navicat更好用的工具。
数据库备份到GitHub,防治数据丢失(非隐私数据)。
MySQL安装
Mysql是一个非常好用的数据库软件,不管是高校教学,还是很多企业,都是用mysql作为数据库。
Mysql官网下载地址:https://www.mysql.com/downloads/
在学习mysql的时候,选择社区版即可
进入之后,选择需要的版本下载
版本选择需要注意几点,一是本机版本,【关于本机】查看自己的系统版本,二是系统选择,x86是interl版本芯片,ARM是apple芯片,如果默认打开的页面没有适合本机的版本,从archives选择合适版本下载
根据本机系统需要,下面选择14这个版本的mysql
下载完成之后,双击安装Mysql,根据安装指引逐步操作即可
安装完成之后,终端输入 mysql --version 命令,如果能够查看Mysql的版本信息,表示安装成功。
数据库可视化DBeaver

DBeaver是一款开源的数据库管理工具(Database Management Tool),用于连接、管理和操作各类数据库系统。它为开发人员、数据分析人员和数据库管理员提供了统一的图形化界面。

主要特点

  • 支持多种数据库:如 MySQL、PostgreSQL、Oracle、SQL Server、SQLite等(通过 JDBC 驱动扩展)

  • 可视化数据库结构(表、视图、索引、触发器等)

  • SQL 编辑与自动补全

  • 数据导入导出(CSV、Excel、SQL 等格式)

  • ER 图生成

  • 跨平台(Windows、macOS、Linux)

官网地址:https://dbeaver.io

https://dbeaver.io/download/

完成安装之后,新建数据库连接
这里可以看到,DBeaver能够支持多种数据可视化
右键单击连接的数据库,选择【编辑连接】,进入数据库连接设置
在DBeaver上面操作数据库,新建数据库,添加表,保存数据库表,等等
点击保存数据库之后,将会出现弹框
相当于执行在命令行执行SQL命令
CREATE TABLE zixunkuaishou.laboratory (	`index` varchar(100NOT NULL COMMENT '实验室唯一ID',	name varchar(100NULL COMMENT '实验室名称',	`level` varchar(100NULL COMMENT '实验室级别',	manager varchar(100NULL COMMENT '管理者',	address varchar(100NULL COMMENT 'URL',CONSTRAINT laboratory_pk PRIMARY KEY (`index`))ENGINE=InnoDBDEFAULT CHARSET=utf8mb4COLLATE=utf8mb4_0900_ai_ciCOMMENT='实验室';
以上是Mysql的配置和可视化过程和简单应用
DBeaver上可以设置外键、创建数据表、更新数据,等等,非常方便。
数据库备份到GitHub
通过一个简单的脚步完成数据库自动备份
第一步:创建备份脚本创建一个文件,比如 mysql_backup_to_github.sh,并写入以下内容:
#!/bin/bash# MySQL 数据库连接信息DB_USER="你的数据库用户名"DB_PASSWORD="你的数据库密码"DB_NAME="要备份的数据库名"# 备份文件存放的目录和文件名(按日期时间命名)BACKUP_DIR="/path/to/your/backup/folder"BACKUP_FILE="$BACKUP_DIR/backup_$(date +"%Y%m%d_%H%M%S").sql"# 1. 使用 mysqldump 导出数据库mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_FILE"# 检查导出是否成功if [ $? -eq 0 ]; then  echo "数据库备份成功: $BACKUP_FILE"  # 2. 进入 Git 仓库目录并执行提交推送  cd "$BACKUP_DIR" || exit  git add .  git commit -m "自动备份数据库 $(date +"%Y-%m-%d %H:%M:%S")"  git push origin main  echo "备份已推送到 GitHub"else  echo "数据库备份失败"fi
第二步:赋予脚本执行权限
chmod +x mysql_backup_to_github.sh
第三步:设置定时执行任务(下面是手动执行)
./mysql_backup_to_github.sh
在第一步之前,应该初始化一个github项目,github上创建一个仓库,本地新建一个对应的文件目录,在文件目录下,执行初始化操作
git initgit remote add origin git.....
如果想要将数据库导入到当前文件目录,第一步的BACKUP_DIR应该去掉,修改为
#!/bin/bash# MySQL 数据库连接信息DB_USER="你的数据库用户名"DB_PASSWORD="你的数据库密码"DB_NAME="要备份的数据库名"# 备份文件存放的目录和文件名(按日期时间命名)BACKUP_FILE="backup_$(date +"%Y%m%d_%H%M%S").sql"# 1. 使用 mysqldump 导出数据库mysqldump -u "$DB_USER" -p"$DB_PASSWORD" "$DB_NAME" > "$BACKUP_FILE"# 检查导出是否成功if [ $? -eq 0 ]; then  echo "数据库备份成功: $BACKUP_FILE"  git add .  git commit -m "自动备份数据库 $(date +"%Y-%m-%d %H:%M:%S")"  git push origin main  echo "备份已推送到 GitHub"else  echo "数据库备份失败"fi
这个脚本会不断地新增数据库脚本文件,可以在这个脚本中添加删除历史.sql文件的命令。