国产数据实战之docker部署MyWebSQL数据库管理工具

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具

一、MyWebSQL介绍

1.MyWebSQL简介

MyWebSql 是一个基于Web的MySQL/Postgres数据库管理客户端,除了操作表格数据外,还可以对包括视图,存储过程,触发器和函数在内的对象进行控制。支持数据和查询结果的导入导出,还内置一个带语法着色功能的SQL编辑器。

2.MyWebSQL特点

1.快速,直观,开发人员友好的用户界面。
2.兼容所有主要的网络浏览器。
3.创建/编辑表结构,无需编写查询。
4.WYSIWYG编辑数据库表和查询​​数据。
5.同时编辑和删除多个记录极其轻松。
6.语法突出显示富文本sql编辑器内部的浏览器,无需任何插件。
7.将完整的数据库/表/查询结果导出到外部文件。
8.在不学习单个命令的情况下使用MySQL相关工具。
9.顺滑的界面,支持多种主题。
10.在几乎所有主要服务器配置上易于部署和安装。

二、检查本地环境

1.检查docker状态

[root@node config]# systemctl status docker |grep active
   Active: active (running) since Fri 2022-10-14 14:06:47 CST; 5h 7min ago
AI 代码解读

2.检查docker-compose版本

[root@node config]# docker-compose version
docker-compose version 1.25.0, build 0a186604
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
AI 代码解读

三、下载MyWebSQL镜像

[root@node mywebsql]# docker pull rizo928/mywebsql-flex
Using default tag: latest
latest: Pulling from rizo928/mywebsql-flex
7dcf5a444392: Pull complete 
759aa75f3cee: Pull complete 
3fa871dc8a2b: Pull complete 
224c42ae46e7: Pull complete 
9e4d7c038c3d: Pull complete 
2bef889cbb8f: Pull complete 
be57bc4687e5: Pull complete 
60c801568b81: Pull complete 
8c2e7907f75b: Pull complete 
0b1b15dd6a1b: Pull complete 
23d29f4252f8: Pull complete 
d687c5477ed5: Pull complete 
2941b08edd24: Pull complete 
3b4a514b0015: Pull complete 
9bafa9902ec3: Pull complete 
Digest: sha256:3debe666e4b65c116e2814ae070b54079654ca561745491d51138230ca21c673
Status: Downloaded newer image for rizo928/mywebsql-flex:latest
docker.io/rizo928/mywebsql-flex:latest
AI 代码解读

四、部署MyWebSQL工具

1.编辑docker-compose.yaml

[root@node mywebsql]# cat docker-compose.yaml 
version: '3.0'
services:
  db:
    image: mariadb:10.5
    container_name: mywebsql-db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=mindoc
      - MYSQL_DATABASE=mindoc
      - MYSQL_USER=mindoc
      - MYSQL_PASSWORD=mindoc
    volumes:
      - /data/mindoc/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - mywebsql
    ports:
      - 3422:3306
  webmysql:
    image: rizo928/mywebsql-flex 
    container_name: mywebsql
    restart: always
    volumes:
      - /data/mywebsql/config:/config
    ports:
      - 9088:80
    depends_on:
      - db
    networks:
      - mywebsql

networks:
  mywebsql:
AI 代码解读

2.创建MyWebSQL容器

[root@node mywebsql]# docker-compose up -d
Creating network "mywebsql_mywebsql" with the default driver
Creating mywebsql-db ... done
Creating mywebsql    ... done
AI 代码解读

3.查看MyWebSQL容器状态

[root@node mywebsql]# docker ps
CONTAINER ID   IMAGE                          COMMAND                  CREATED             STATUS             PORTS                                                  NAMES
0fb0ebac00d6   mysql:5.7                      "docker-entrypoint.s…"   About an hour ago   Up About an hour   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp   some-mysql
3fa0565b18d8   rizo928/mywebsql-flex          "/sbin/my_init"          2 hours ago         Up 37 minutes      0.0.0.0:9088->80/tcp, :::9088->80/tcp                  mywebsql
3f49db3d5264   mariadb:10.5                   "docker-entrypoint.s…"   2 hours ago         Up 2 hours         0.0.0.0:3422->3306/tcp, :::3422->3306/tcp              mywebsql-db
AI 代码解读

4.查看MyWebSQL日志

[root@node mywebsql]# docker logs mywebsql
Starting pre-service scritps in /etc/my_init.d
*** Running: /etc/my_init.d/startup.sh
mywebsql installed...
config directory exists
/config is Empty
starting rc.local scritps
*** Running: /etc/rc.local
Booting runit daemon...
Process runsvdir running with PID 222
Begin shutting down runit services...
Starting pre-service scritps in /etc/my_init.d
*** Running: /etc/my_init.d/startup.sh
mywebsql installed...
config directory exists
we are already configured
*** Running: /etc/rc.local
starting rc.local scritps
Booting runit daemon...
Process runsvdir running with PID 236
Begin shutting down runit services...
Starting pre-service scritps in /etc/my_init.d
*** Running: /etc/my_init.d/startup.sh
mywebsql installed...
config directory exists
we are already configured
*** Running: /etc/rc.local
starting rc.local scritps
Booting runit daemon...
Process runsvdir running with PID 236
httpd (pid 245) already running
Begin shutting down runit services...
Starting pre-service scritps in /etc/my_init.d
*** Running: /etc/my_init.d/startup.sh
mywebsql installed...
config directory exists
we are already configured
*** Running: /etc/rc.local
starting rc.local scritps
Booting runit daemon...
Process runsvdir running with PID 236
Begin shutting down runit services...
Starting pre-service scritps in /etc/my_init.d
*** Running: /etc/my_init.d/startup.sh
mywebsql installed...
config directory exists
we are already configured
*** Running: /etc/rc.local
starting rc.local scritps
Booting runit daemon...
Process runsvdir running with PID 236
httpd (pid 245) already running
AI 代码解读

五、进入MyWebSQL的web登录页

在这里插入图片描述

六、检查TiDB集群状态

1.检查TiDB各组件容器状态

[root@server ~]# docker ps -a
CONTAINER ID   IMAGE                                                                 COMMAND                  CREATED      STATUS          PORTS                                                                                                                                  NAMES
e3a109b3ac77   pingcap/tispark:v2.1.1                                                "/opt/spark/sbin/sta…"   3 days ago   Up 4 minutes    0.0.0.0:38081->38081/tcp, :::38081->38081/tcp                                                                                          tidb-docker-compose-master_tispark-slave0_1
750f938b9669   pingcap/tispark:v2.1.1                                                "/opt/spark/sbin/sta…"   3 days ago   Up 4 minutes    0.0.0.0:7077->7077/tcp, :::7077->7077/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp                                                   tidb-docker-compose-master_tispark-master_1
7fd728cc1019   pingcap/tidb:latest                                                   "/tidb-server --stor…"   3 days ago   Up 7 seconds    0.0.0.0:4000->4000/tcp, :::4000->4000/tcp, 0.0.0.0:10080->10080/tcp, :::10080->10080/tcp                                               tidb-docker-compose-master_tidb_1
0e18dbcd2efe   pingcap/tikv:latest                                                   "/tikv-server --addr…"   3 days ago   Up 20 seconds   20160/tcp                                                                                                                              tidb-docker-compose-master_tikv0_1
3789709f53b1   pingcap/tikv:latest                                                   "/tikv-server --addr…"   3 days ago   Up 4 minutes    20160/tcp                                                                                                                              tidb-docker-compose-master_tikv2_1
304c90121b1c   pingcap/tikv:latest                                                   "/tikv-server --addr…"   3 days ago   Up 4 minutes    20160/tcp                                                                                                                              tidb-docker-compose-master_tikv1_1
d3f461f3e313   pingcap/pd:latest                                                     "/pd-server --name=p…"   3 days ago   Up 19 seconds   2380/tcp, 0.0.0.0:49154->2379/tcp, :::49154->2379/tcp                                                                                  tidb-docker-compose-master_pd1_1
6b2a18f4b823   prom/pushgateway:v0.3.1                                               "/bin/pushgateway --…"   3 days ago   Up 19 seconds   9091/tcp                                                                                                                               tidb-docker-compose-master_pushgateway_1
51deb002f753   grafana/grafana:6.0.1                                                 "/run.sh"                3 days ago   Up 18 seconds   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp                                                                                              tidb-docker-compose-master_grafana_1
82b528f74a0c   pingcap/pd:latest                                                     "/pd-server --name=p…"   3 days ago   Up 4 minutes    2380/tcp, 0.0.0.0:49153->2379/tcp, :::49153->2379/tcp                                                                                  tidb-docker-compose-master_pd2_1
0939bfabe52b   prom/prometheus:v2.2.1                                                "/bin/prometheus --l…"   3 days ago   Up 17 seconds   0.0.0.0:9090->9090/tcp, :::9090->9090/tcp                                                                                              tidb-docker-compose-master_prometheus_1
b2d645e3b30a   pingcap/tidb-vision:latest                                            "/bin/sh -c 'sed -i …"   3 days ago   Up 4 minutes    80/tcp, 443/tcp, 2015/tcp, 0.0.0.0:8010->8010/tcp, :::8010->8010/tcp                                                                   tidb-docker-compose-master_tidb-vision_1
c3cb9f6acc84   pingcap/pd:latest                                                     "/pd-server --name=p…"   3 days ago   Up 14 seconds   2380/tcp, 0.0.0.0:49155->2379/tcp, :::49155->2379/tcp                                                                                  tidb-docker-compose-master_pd0_1
AI 代码解读

2.本地访问TiDB集群

[root@server ~]#  mysql -h 127.0.0.1 -P 4000 -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.25-TiDB-v5.0.1 TiDB Server (Apache License 2.0) Community Edition, MySQL 5.7 compatible

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| METRICS_SCHEMA     |
| PERFORMANCE_SCHEMA |
| ittest             |
| mysql              |
| test               |
+--------------------+
6 rows in set (0.01 sec)
AI 代码解读

七、配置MyWebSQL的特定数据库实例

1.编辑server.php

新增以下模块
```cpp

           'TiDB-remote'          => array(
                                         'host'     => '192.168.3.240:4000',
                                         'driver'   => 'mysql5'
                                     )
AI 代码解读
## 2.查看server.php

```cpp
[root@node config]# cat servers.php 
<?php
/**
 * This file is a part of MyWebSQL package
 * defining more that one server here will give user the option to select a server at login time
 * Notes:
 *   Server list is used only when authentication type is LOGIN
 *
 * @file:      config/servers.php
 * @author     Samnan ur Rehman
 * @copyright  (c) 2008-2014 Samnan ur Rehman
 * @web        http://mywebsql.net
 * @license    http://mywebsql.net/license
 */

    // add or remove list of servers below

    // please make sure you have the proper extensions enabled in your php config
    // to successfully connect to servers other than MySQL

    // valid drivers types are:
    // mysql4, mysql5, mysqli, sqlite, sqlite3, pgsql

    // for sqlite driver:
    //   'host' should be the folder name where sqlite databases are saved,
    //   'user' and 'password' options should be set for additional security

    // if true, a free form server name will be allowed to be entered instead of selecting
    // existing one from the list
    $ALLOW_CUSTOM_SERVERS = TRUE;

    // if the above is true, only the following server types will be allowed
    // sqlite is not recommended here, in order to avoid possible file system attacks
    $ALLOW_CUSTOM_SERVER_TYPES = "mysql,pgsql";

    $SERVER_LIST = array(
        'Localhost MySQL'           => array(
                                     'host'     => 'localhost',
                                     'driver'   => extension_loaded('mysqli') ? 'mysqli' : 'mysql5'
                                 ),
#                'remote  MySQL'             => array(^M
#                                             'host'     => '192.168.3.152:3776',^M
#                                             'driver'   => extension_loaded('mysqli') ? 'mysqli' : 'mysql5'^M
#                                         ),^M

        'SQLite Databases'          => array(
                                     'host'     => 'c:/sqlitedb/',
                                     'driver'   => 'sqlite3',
                                     'user'     => 'root',    // set this yourself
                                     'password' => 'sqlite'  // set this yourself
                                 ),
         'Localhost PostgreSQL'     => array(
                                     'host'     => 'localhost',
                                     'driver'   => 'pgsql'
                                 ),

                'TiDB-remote'          => array(
                                     'host'     => '192.168.3.240:4000',
                                     'driver'   => 'mysql5'
                                 )


        /*'MySQL Proxy Server'  => array(
                                     'host'     => 'localhost:4040',
                                     'driver'   => 'mysql5'
                                 ),
        'MySQL 4'             => array(
                                     'host'     => 'localhost',
                                     'driver'   => 'mysql4'
                                 ),
        */
    );
?>
AI 代码解读

3.重启MyWebSQL容器

[root@node config]# docker restart mywebsql
mywebsql
AI 代码解读

八、MyWebSQL工具连接TiDB数据库

1.进入MyWebSQL的登录页

在这里插入图片描述

2.连接TiDB数据库

在这里插入图片描述

3.查看TiDB的用户

在这里插入图片描述

4.查看数据表

在这里插入图片描述

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
4
4
0
1266
分享
相关文章
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
阿里云瑶池数据库与沃趣科技将继续深化合作,共同推动国产数据库技术的持续创新与广泛应用,为行业生态的繁荣注入更强劲的技术动力。
阿里云PolarDB与沃趣科技携手打造一体化数据库解决方案,助推国产数据库生态发展
Docker环境下快速部署RabbitMQ教程。
就这样,你成功地用魔法召唤出了RabbitMQ,还把它和你的应用程序连接了起来。现在,消息会像小溪流水一样,在你的系统中自由流淌。别忘了,兔子们不喜欢孤独,他们需要你细心的关怀,不时地监控它们,确保他们的世界运转得井井有条。
111 18
MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
MAZANOKE 是一款简易的图片优化工具,它直接在浏览器中运行,支持离线使用,并确保您的图片始终保留在设备上,绝不外泄。 这款专为普通人设计的工具,适合与亲友分享使用,是那些来路不明的"免费"在线工具的可靠替代品。
51 1
MAZANOKE:一款隐私优先的浏览器图像优化工具及Docker部署指南
【赵渝强老师】数据库不适合Docker容器化部署的原因
本文介绍了在Docker中部署MySQL数据库并实现数据持久化的方法,同时分析了数据库不适合容器化的原因。通过具体步骤演示如何拉取镜像、创建持久化目录及启动容器,确保数据安全存储。然而,由于数据安全性、硬件资源争用、网络带宽限制及额外隔离层等问题,数据库服务并不完全适合Docker容器化部署。文中还提到数据库一旦部署通常无需频繁升级,与Docker易于重构和重新部署的特点不符。
218 18
【赵渝强老师】数据库不适合Docker容器化部署的原因
在Docker容器中部署GitLab服务器的步骤(面向Ubuntu 16.04)
现在,你已经成功地在Docker上部署了GitLab。这就是我们在星际中的壮举,轻松如同土豆一样简单!星际旅行结束,靠岸,打开舱门,迎接全新的代码时代。Prepare to code, astronaut!
120 12
数据存储使用文件还是数据库,哪个更合适?
数据库和文件系统各有优劣:数据库读写性能较低、结构 rigid,但具备计算能力和数据一致性保障;文件系统灵活易管理、读写高效,但缺乏计算能力且无法保证一致性。针对仅需高效存储与灵活管理的场景,文件系统更优,但其计算短板可通过开源工具 SPL(Structured Process Language)弥补。SPL 提供独立计算语法及高性能文件格式(如集文件、组表),支持复杂计算与多源混合查询,甚至可替代数据仓库。此外,SPL 易集成、支持热切换,大幅提升开发运维效率,是后数据库时代文件存储的理想补充方案。
docker arm架构部署kafka要点
本内容介绍了基于 Docker 的容器化解决方案,包含以下部分: 1. **Docker 容器管理**:通过 Portainer 可视化管理工具实现对主节点和代理节点的统一管理。 2. **Kafka 可视化工具**:部署 Kafka-UI 以图形化方式监控和管理 Kafka 集群,支持动态配置功能, 3. **Kafka 安装与配置**:基于 Bitnami Kafka 镜像,提供完整的 Kafka 集群配置示例,涵盖 KRaft 模式、性能调优参数及数据持久化设置,适用于高可用生产环境。 以上方案适合 ARM64 架构,为用户提供了一站式的容器化管理和消息队列解决方案。
147 10
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
189 28
数据库国产化选型?YashanDB 给中大型企业的五个答案
近两年,“国产数据库”成为企业数字化升级的重要议题。YashanDB作为新一代国产关系型数据库,以完整产品矩阵解决企业核心关切:通过图形化工具提升开发效率;提供自动化迁移平台简化数据库切换;云管理工具减轻运维负担;支持复杂业务场景;拥有成熟团队保障企业级服务。YashanDB不仅是“可替代”,更是“更可靠”的选择,助力企业实现高效、可控的数据库升级。
这款免费数据库工具,可能是YashanDB图形化管理的最佳选择
DBeaver for YashanDB 是一款专为国产自研数据库 YashanDB 定制的图形化管理工具,基于全球流行的开源数据库工具 DBeaver 二次开发而成。它深度适配 YashanDB 的各种架构,支持 HEAP/LSC 多形态表管理和 Oracle 生态兼容,提供高效的对象管理、智能 SQL 开发和工业级 PL/SQL 调试功能。通过可视化操作,开发者可轻松完成物化视图配置、存储过程管理等复杂任务,大幅提升效率。该工具完全免费,支持多平台,为企业级数据库管理提供了成熟解决方案。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问