作为程序员,我们经常使用客户端来管理数据库,但很少使用可以管理数据库的在线服务。今天给大家推荐的是Bytebase,一款可以在线可视化管理数据库的开源工具。不仅可以方便的管理数据库,还支持SQL审计和备份恢复。总之,功能很强大!SpringBoot实战电商项目商城(50k+star)地址:https://github.com/macrozheng/mallBytebase简介Bytebase是一款面向开发者的数据库变更管理工具,目前在Github上有3.6K+Star。其主要特点如下:SQL审计:一站式的SQL审计面板,可以直观的看到数据库中的所有变更记录。SQL建议:可自动检查SQL语句规范,另外提供GitHubAction和API访问方式。SQL编辑器:可以在线管理和查看数据库表,支持语法自动提示。GitOps工作流:支持GitHub和GitLab的集成,使用GitOps工作流进行数据库变更。备份恢复:支持自动备份数据库和恢复数据。下面是使用Bytebase操作数据库的效果,提示比较全。安装首先,我们将在Linux下安装Bytebase。使用Docker安装无疑是最方便的。由于ByteBase对MySQL8支持较好,这里推荐安装MySQL8,先下载MySQL8的Docker镜像;dockerpullmysql:8然后使用以下命令运行MySQL8容器;dockerrun-p3506:3306--namemysql8\-v/mydata/mysql8/mysql-files:/var/lib/mysql-files\-v/mydata/mysql8/conf:/etc/mysql\-v/mydata/mysql8/log:/var/log/mysql\-v/mydata/mysql8/data:/var/lib/mysql\-eMYSQL_ROOT_PASSWORD=root\-dmysql:8然后使用如下命令下载Bytebase的Docker镜像dockerpullbytebase/bytebase:1.3.1下载成功后,使用以下命令运行ByteBase容器;dockerrun--init\--namebytebase\--restartalways\--add-hosthost.docker.internal:192.168.3.105\--publish5678:5678\--health-cmd"curl--failhttp://localhost:5678/healthz||exit1"\--health-interval5m\--health-timeout60s\--volume/mydata/bytebase/data:/var/opt/bytebase\-dbytebase/bytebase:1.3.1\--data/var/opt/bytebase\--hosthttp://localhost\--port5678运行成功后,服务器会显示如下信息;首次操作成功后,需要设置管理员账号,访问地址:http://192.168.3.105:5678UsingBytebase不仅支持在线数据库管理,还支持一系列的数据库运维操作。下面介绍一下它的常用功能。会员我们一般不会直接使用管理员账号来操作Bytebase,我们可以通过设置->会员功能添加新会员;然后点击会员头像,编辑会员信息设置密码,设置完成后切换到普通账号使用。EnvironmentBytebase的环境功能可以用来区分不同环境下的实例,比如测试环境和生活环境,可以用来设置数据库变更是否需要人工审计,以及数据库的自动备份策略。实例我们配置好环境后,就可以在实例函数中配置数据库实例了;输入数据库连接信息并选择环境后,数据库实例配置成功;查看实例详情时,可以看到实例中的数据库点击数据库名可以查看数据库中的所有表信息。项目如果我们想使用SQL语句来管理Bytebase中的数据库,我们需要创建一个项目;创建完成后,将数据库传输到项目中;经过这一系列的操作,我们就可以对数据库进行管理了,打开SQL编辑器进行数据库管理操作的编辑。数据库数据库管理这里演示一下使用SQL编辑器操作数据库,提示比较齐全。数据库更改如果我们要更改数据库,需要在项目中选择changeSchema功能;然后输入我们需要更改的SQL脚本,这里我们创建一个product表,指定reviewer,点击Create提交更改;这里由于测试没有设置环境需要人工审核,直接执行变更,可以通过环境设置人工审核。备份和恢复在数据库功能中,我们还可以实现自动和手动的备份和数据恢复操作。综上所述,Bytebase确实是一个实用的数据库管理和更改工具,它可以让我们在没有客户端的情况下方便地管理数据库。其SQL审计功能可以防止开发者对数据库的误操作。项目地址https://github.com/bytebase/b...
