我们在利用群晖的 Container Manager 套件或 Docker 进行创建容器时,常常会碰着同时安装数据库容器的情形。模糊中,我们可能认为不同的项目该当能够共享同一个数据库,但是由于短缺干系知识,又怕引起其他问题,就不明晰之。
以是本日老宁将一步步带你认识群晖中的数据库,从更深层次教你利用群晖 phpMyAdmin 套件管理群晖中的数据库,以及多个项目如何共用一个数据库,让你在折腾群晖时更加顺畅。
数据库什么是数据库?
数据库就像是一个大书架(表),你可以在上面整洁地摆放各种各样的书本。每本书就像是一条数据记录,里面包含了很多信息,比如书名、作者、出版日期等。这些信息就像数据字段,它们见告我们每本书的详细情形。
你可以想象,如果有很多这样的书架,每个书架上都有很多书,那么你须要一个别系的方法来找到你想要的那本书。这便是数据库的事情。它帮助你组织和分类所有的书本,让你能够通过搜索书名或者作者等信息快速找到你须要的内容。
除了一些大略的,不须要利用数据库的运用程序外,大多数项目都须要利用数据库。比如前面先容的兰空图床,它就用到了 MySQL 数据库。
当然数据库的种类也有很多,比如 MySQL、PostgreSQL、SQLite、Microsoft SQL Server、MariaDB、Redis、MongoDB 等等。
当我们在启动容器时,会拉取 image: postgres:15 这样的镜像,那就代表了该项目利用了 PostgreSQL 数据库。
群晖 MariaDB 套件
群晖上供应了 MariaDB 套件,可以方便用户一键安装 MariaDB 数据库做事(MariaDB 最初是作为 MySQL 的一个分支,它们两者之间的兼容性非常高)。
MariaDB 安装方法非常大略。在套件中央搜索 MariaDB,点击安装按钮后,再输入密码和端口(3306被做事端口占用了)等待安装完毕即可。
一样平常情形下数据库的最高权限是用户都是:root,它可以访问数据库的任何表,并对它们进行增加、删除、修正、查询操作。如果想要把 MariaDB 数据库做事映射到外网,须要开启 TCP/IP 连接,并在路由器开启端口映射
群晖 phpMyAdmin 套件
想要查看和管理数据库中的数据,除了通过专业且繁芜的命令行操作,更直不雅观、大略的办法便是借助各种图形化界面管理工具了。
在浩瀚数据库中,MySQL 是运用最广泛的一种。为了让大家在利用 MySQL 时更加得心应手,我们紧张先容群晖 DSM 内置的图形化管理工具:phpMyAdmin 套件。
phpMyAdmin 是一个用 PHP 编写的免费且开源的 Web 运用,它通过一个清晰易用的网页界面,让我们能够轻松地对 MySQL 和 MariaDB 数据库进行管理。
在群晖中安装 phpMyAdmin 和其他套件一样,只需在套件中央搜索即可安装。phpMyAdmin 套件须要依赖 Web Station 和 PHP 8,以是它们会被同时安装。
安装完毕后,须要新增网页做事门户,设置类型为基于端口,并配置端口号。(只要没被占用的端口都行)
在内网中可以直接通过【http://群晖:9200】访问 phpMyAdmin 后台管理界面,如果须要在公网进行访问,那么则须要配置反向代理或端口映射。
管理 MariaDB
要对数据库进行管理,首先要登录到数据库。
在 phpMyAdmin 登录界面,输入用户名:root,密码为前面安装 MariaDB 设置的密码,就能登录到 MariaDB 做事。
登录成功后,在界面左侧可以看到 MariaDB 中所有的数据库。
右侧可以看到当前 MariaDB 的信息,包括类型、连接状态等信息。
如果要创建新的数据库,可以在数据库菜单中进行创建。
要对账户进行管理,可以在账户菜单新增账户或者对某账户付与特定的访问权限。
至于其他的操作,老宁就不展开细说了。
管理MySQL现在我们学会了通过 phpMyAdmin 管理群晖自带的 MariaDB 数据库。如果想要利用 phpMyAdmin 管理其他地方的数据库,比如 Container Manager 中的数据库,又该如何操作呢?
接下来以老宁写的兰空图床的配套安装的数据库为例。如果不知道如何安装 MySQL 数据库,可以参考这篇文章
群晖搭建兰空图床(Lsky Pro)
首先我们要理解群晖的 phpMyAdmin 和 MariaDB 套件实在是两个东西,并不是说 phpMyAdmin 安装完毕后就能直接找到 MariaDB 数据库直接对它进行管理。
最主要的是 Web Station 套件中的 web_packages文件夹,它会将 Web Station 中的配置文件全部放在里面。而 phpMyAdmin 想要连接到 MariaDB 数据库,便是由于在synology_server_choice.json 文件中有相应的配置
当我们打开 synology_server_choice.json 文件后,就可以看到它是通过 Socket 办法进行连接的
这也就阐明了前面在 MariaDB 套件中没有启用 TCP/IP 也能利用 phpMyAdmin 连接到 MariaDB 的缘故原由,而利用 socket 连接数据库是不须要指定端口号的,以是在 MariaDB 中设置的端口号是为了利用 TCP/IP 连接。
根据前面的教程,我们在 Container Manager 中新建了一个 MySQL 数据库,端口为3306,网络模式为 bridge。
把 synology_server_choice.json 文件下载到本地电脑,在方括号中新增如下代码。
{ "verbose": "MySQL", "auth_type": "cookie", "host": "192.168.2.99", "port": "3306", "connect_type": "tcp", "compress": false, "AllowNoPassword": false}
把稳花括号之间须要用逗号隔开,host 为群晖的内网IP,port 为容器映射的端口号
保存并上传到群晖后,覆盖原有的 synology_server_choice.json 文件。重新打开 phpMyAdmin 登录界面就能看到有两个做事器,分别对应 MariaDB 套件和 Container Manager 中的 MySQL。
选择 MySQL 后,输入在创建容器时配置的 root 密码,可以看到名为 lsky 的数据库
每个数据库中都有许多的表,每个表中存储了大量的数据信息
共用数据库
末了来看看多个做事都须要数据库做事时,如何共用。
通过下面的 Docker 命令,我们知道这个镜像时须要用到数据库做事的。
原来在安装图床时,已经安装上启动了一个 MySQL 容器,再去重新安装一个 MySQL 是十分摧残浪费蹂躏性能的,以是直接共用原来的即可。
在配置容器时,我们只须要手动设置 DB_HOST、DB_PORT、DB_USERNAME、DB_PASSWORD 为已安装的 MySQL 做事器,再输入一个数据库名 firefly。
这样 firefly_iii 就能自己在 MySQL 中新增一个名为 firefly 的数据库以供自己利用。
如果要利用 MariaDB ,要怎么操作呢?还记得前面说到的 TCP/IP 和 Socket 吗?要利用 TCP/IP 办法进行连接,就必须要在 MariaDB 界面中勾选启用。
在利用 Docker Compose 文件的繁芜项目中,每每也会拉取数据库镜像,我们可以通过修正其配置文件来达到共用数据库做事的目的。不过这个操作更加繁芜,由于文章篇幅限定,我们后面再说。
我是老宁一个热爱技能的程序员和极客,群晖NAS深度玩家!
专注NAS干系技能分享,原创!
干货!
以为老宁的文章对你有帮助,记得点赞、收藏、加关注!