飞牛os上的docker容器安装MySQL
一、找mysql镜像
在fnOS中打开【Docker】应用,选择镜像仓库输入【MySQL】搜索镜像,找到自己需要的镜像下载。
二、创建MySQL在NAS上映射的文件夹
在你想要的位置创建 mysql文件夹。
三、添加容器并启动容器
打开桌面的【Docker】应用,点击右上角的添加容器,容器名称、资源限制任意即可,【勾选☑️】开机自动开启。
点击【下一步】,进行端口设置和存储设置
端口设置:容器端口3306映射到本地3306端口,33060端口可以删可以保留,暂时不用不到
储存位置:分别把前面创建的qwx_space/mysql文件夹映射到【/var/lib/mysql】。
如下图照抄就行,没有的话就点【添加路径】自己手动添加。
滚动条向下滚动,找到【环境变量】设置,添加如下的环境变量:
# root数据库密码变量
MYSQL_ROOT_PASSWORD=as123456
# 字符编码变量
MYSQL_CHARACTER_SET_SERVER=utf8mb4
MYSQL_COLLATION_SERVER=utf8mb4_unicode_ci
按图照抄,把代码复制进去,只有【MYSQL_ROOT_PASSWORD】后面的【as123456】是数据库的登录密码自己换成你自己的密码,这个密码很重要,要记好!!!
其他都保持默认,设置好下一步创建完成即可。
3.1 需要注意的是,我前面创建的文件夹路径,根据路径是:/vol2/1000/qwx_space/mysq
如何查看根路径:
四、创建数据库
找到容器中已经启动运行的【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;
五、遇到的问题,以及解决过程
5.1 启动报错:
2025-10-14T16:56:33.304763Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.43' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. 2025-10-14T16:56:33.304774Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
解决方法:
授权
chmod -R 755 /vol2/1000/qwx_space/chown -R 999:999 /vol2/1000/qwx_space/
5.2 连接mysql报错
连接mysql报错:2059 Authenticaton plugin 'caching_sha_password' bonnot be loaded
该错误是由于MySQL 8.0及以上版本默认使用caching_sha2_password加密方式,而部分客户端工具或旧版本驱动不支持该插件所致12。以下是解决方案
解决方法:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'a12345678';
FLUSH PRIVILEGES;
其中’a12345678’ 是你之前设置的密码。