挖掘群晖NAS实用工具 篇十:群晖nas安装Mysql,单个数据库满足所有docker需求
本文收录于挖掘群晖NAS实用工具系列
前言
大家新年好,祝大家新的一年万事顺利,这里是可爱的cherry。今天给大家分享一下群晖NAS安装数据库mysql,并满足所有docker的使用。
总所周知,如photoprism、fireⅢ等多种开源项目都需要使用到数据库,虽然他们往往都支持sqllite的内置数据库,但是因为性能和数据量问题,经常会导致应用崩溃。
但使用docker-compose安装的话,又会导致NAS里存在多个mysql数据库容器,白白增加了系统负担。如果使用一个docker安装数据库,然后其他docker连接的话,又涉及到docker的容器连接问题,新手更是折腾不起来。
因此,从套件层面安装一个数据库,复用给所有docker,一劳永逸!
一、安装MariaDB10
打开群晖套件中心,搜索MariaDB10,安装到需要的磁盘中。
安装完成以后,打开MariaDB套件,设置root账号的密码,然后打开TCP/IP连接用于访问,建议这里将端口号修改为非3306端口,确保不会被网络攻击。关于网络安全可以看我之前的文章。
二、安装phpMyAdmin
安装phpMyAdmin可以通过Web Station网页服务直接连接上MariaDB,而不需要通过ssh访问,极大的方便了我们的操作。
安装完成以后,点击phpMyAdmin就可以访问到数据库了。
如果phpMyAdmin无法打开,或者外网无法访问的,可以检查一下Web Station设置是否有问题。
三、以photoprism为例,示范如何连接套件的MariaDB
通过phpMyAdmin登录数据库以后,点击上方的SQL按钮
以下命令通用于任何数据库、账号密码的创建。
(一)新建数据库
复制到SQL栏中,点执行执行结果反馈CREATE DATABASE photoprism #新建数据库,名字为photoprism
CHARACTER SET = 'utf8mb4' #设置字符串为utf8mb4
COLLATE = 'utf8mb4_unicode_ci'; #设置排序规则为utf8mb4_unicode_ci,不同软件的要求会不一样,具体可以看具体的文档
(二)新建账号密码并赋权
CREATE USER 'photoprism'@'%' IDENTIFIED BY 'password';
设置账号为photoprism,登录权限为任意%,密码为password。如果只允许本地登录,则是 'photoprism'@'localhost',建议直接%免得出现权限问题
GRANT ALL PRIVILEGES ON photoprism.* to 'photoprism'@'%';
为账号'photoprism'@'%'赋予表photoprism的所有权限。注意,'photoprism'@'%'和'photoprism'@'localhost'不是同一个账号,只是名字一样,因此赋权需要写清楚是给谁。
(三)刷新
FLUSH PRIVILEGES;
(四)查看权限
👌结果正确SELECT user FROM mysql.user; #查询用户是否新建成功
👌结果正确SHOW GRANTS FOR photoprism@'%' #查询权限是否复制成功
(五)设置photoprism数据库连接
在部署photoprism的时候,环境变量需要进行设置,这样就可以连接到我们群晖NAS上的数据库拉,具体如下:
PHOTOPRISM_DATABASE_DRIVER: "mysql" #类型选择为mysql
PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" #连接为IP:PORT,如127.0.0.1:23306或者192.168.0.199:23306,这里的127.0.0.1代表本地,192.168.0.199是我NAS的IP,即代表宿主机。
PHOTOPRISM_DATABASE_NAME: "photoprism" #刚才设置的数据库账号
PHOTOPRISM_DATABASE_USER: "photoprism" #刚才数据库用户账号
PHOTOPRISM_DATABASE_PASSWORD: "password" #刚才数据库用户密码
最后
对于数据使用linux和mysql的人来说,SSH依旧是一个好方法,而本地客户端如navicat等也是方便且支持丰富的工具。但是对于只是需要docker安装的时候使用一下mysql,或者轻量级的用户,套件中心自带phpMyAdmin无疑是最好的选择,当然我们还有很多很优秀的web管理工具,如Adminer。
强烈建议大家都安装一个MariaDB,真的能在折腾NAS和docker的时候节约很多的时间和NAS性能。
最后,案例一下我使用的群晖及相关配件,以及平替DX517的好物M517。
欢迎朋友们评论区讨论留言,或分享一下自己的数据库管理心得。我会定期更新关注NAS使用方法、开源软件与Docker软件、游戏与生活相关内容,喜欢的朋友请关注、点赞、留言支持。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
糖果CCC
1.群晖原生的套件,对于数据文件持久化保存不是很方便
2.所有容器共用一个数据库,相当于把鸡蛋都放到一个篮子里了,不利于分散风险和后续的灵活调试,牵一发而动全身,尤其是当某个服务对数据库版本有所挑剔的时候就凸显这个问题了,而且MariaDB也不是万能的,还有很多其他数据库需要用到。我是习惯每个服务都单独外挂一个数据库容器
校验提示文案
xyzhangxin
校验提示文案
kaaye
校验提示文案
闲嗑瓜子
校验提示文案
糖果CCC
1.群晖原生的套件,对于数据文件持久化保存不是很方便
2.所有容器共用一个数据库,相当于把鸡蛋都放到一个篮子里了,不利于分散风险和后续的灵活调试,牵一发而动全身,尤其是当某个服务对数据库版本有所挑剔的时候就凸显这个问题了,而且MariaDB也不是万能的,还有很多其他数据库需要用到。我是习惯每个服务都单独外挂一个数据库容器
校验提示文案
kaaye
校验提示文案
xyzhangxin
校验提示文案
闲嗑瓜子
校验提示文案