飞牛NAS在docker容器安装MySQL并搭建Gitea环境
1、FnOS在docker中安装MySQL数据库
1.1、安装MySQL数据库
在fnOS中打开【Docker】应用,选择镜像仓库输入【MySQL】搜索镜像,找到自己需要的镜像下载。
1.2、创建MySQL在NAS上映射的文件夹
在你想要的位置创建 MySQL 文件夹,并在文件夹中创建 data 和 log 文件夹。
1.3、添加容器并启动容器
打开桌面的【Docker】应用,点击右上角的添加容器,容器名称、资源限制任意即可,【勾选☑️】开机自动开启。
点击【下一步】,进行端口设置和存储设置
端口设置:容器端口3306映射到本地3306端口,33060端口可以删可以保留,暂时不用不到
储存位置:分别把前面创建的data和log文件夹分别映射到【/var/lib/mysql】和【/var/log/mysql】。
如下图照抄就行,没有的话就点【添加路径】自己手动添加。
滚动条向下滚动,找到【环境变量】设置,添加如下的环境变量。
# root数据库密码变量
MYSQL_ROOT_PASSWORD=as123456
# 字符编码变量
MYSQL_CHARACTER_SET_SERVER=utf8mb4
MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
按图照抄,把代码复制进去,只有【MYSQL_ROOT_PASSWORD】后面的【as123456】是数据库的登录密码自己换成你自己的密码,这个密码很重要,要记好!!!
其他都保持默认,设置好下一步创建完成即可。
环境变量说明:
MYSQL_CHARACTER_SET_SERVER=utf8mb4
-
含义:
-
定义 MySQL 服务器的默认字符集(Character Set)。
-
utf8mb4 是一种 Unicode 字符集,支持 4 字节的编码,可以存储所有 Unicode 字符。
-
与旧的 utf8 不同,utf8mb4 能存储表情符号(如 😄)和特殊符号。
-
-
作用:
-
设置为默认字符集后,数据库、表或列在未指定字符集时默认使用 utf8mb4。
-
适合需要多语言支持或存储表情符号的场景。
-
MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
-
含义:
-
定义字符集的默认排序规则(Collation)。
-
utf8mb4_unicode_ci 是 utf8mb4 字符集的一种排序规则。
-
unicode:按照 Unicode 标准规则进行字符比较。
-
ci(Case Insensitive):大小写不敏感。
- 例如:A 和 a 会被认为是相等的。
-
-
-
作用:
-
决定字符串在比较或排序时的行为。
-
提供对多语言字符的智能排序,适合国际化需求。
-
总结
-
完整 Unicode 支持:
- utf8mb4 可以存储所有 Unicode 字符,包括表情符号和特殊符号。
- 推荐始终使用 utf8mb4,避免使用 utf8。
-
智能排序和比较:
- utf8mb4_unicode_ci 提供 Unicode 标准的排序规则,适合多语言环境。
- 对大小写不敏感,提高字符比较的灵活性
1.4、创建数据库
找到容器中已经启动运行的【MySQL】,点击容器的【…】选择【终端】,点击【/bin/bash】连接
依次输入以下命令:
# 下面代码mysql是容器名称,根据自己创建的名称修改
mysql -u root -p
输入部署的时候设置的 【root】 密码,上面让记住的那个密码哦!!!
运行以下代码,允许【root】用户将自己拥有的权限授予其它用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
刷新权限
# 运行以下命令以确保权限生效:
FLUSH PRIVILEGES;
创建数据表
# 下面代码[Gitea]就是数据库名,只有在数据库不存在时才创建 Gitea 数据库,防止重复创建引起错误。
CREATE DATABASE IF NOT EXISTS Gitea;
如果之后需要搭建Gitea,择在数据库选项时填入这里创建的数据库名字 Gitea
数据库名:Gitea
用户名:root
密码:as123456 就是前面设置的root的密码
1.5、单独创建数据库用户使用
注意⚠️:如果感觉使用root用户不安全,也可以单独创建用户使用
1、创建用户并设置密码:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password';
- 其中 ‘newuser’ 是用户名,‘%’ 表示允许从任何主机连接,‘password’ 是用户的密码。
2、授予全部权限:
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
- 表示所有数据库的所有表,GRANT ALL PRIVILEGES 授予用户全部权限。
3、刷新权限:
FLUSH PRIVILEGES;
2、FnOS搭建Gitea环境
2.1、安装Gitea应用
在飞牛的应用商店搜索【Gitea】,直接下载安装,安装完成后点击【打开】
首次进入会显示数据库类型、数据库主机、用户名、用户密码、数据库名称等
数据库的类型选择:MySQL
数据库主机:127.17.0.1:3306 具体可以看下docker容器中MySQL的网络中查看
用户名:root
数据库用户密码:创建数据库时设置的密码
数据库名称:gitea 上面手动创建的数据库名称
至于SSH连接以及访问的URL可以根据需要设置成公网IP
跳转到登录页面时,如果没有账号可以先注册一个账号