飞牛os上的docker容器安装MySQL

发布时间:2026/8/20 18:46:09
飞牛os上的docker容器安装MySQL 一、找mysql镜像在fnOS中打开【Docker】应用选择镜像仓库输入【MySQL】搜索镜像找到自己需要的镜像下载。二、创建MySQL在NAS上映射的文件夹在你想要的位置创建 mysql文件夹。三、添加容器并启动容器打开桌面的【Docker】应用点击右上角的添加容器容器名称、资源限制任意即可【勾选☑️】开机自动开启。点击【下一步】进行端口设置和存储设置端口设置容器端口3306映射到本地3306端口33060端口可以删可以保留暂时不用不到储存位置分别把前面创建的qwx_space/mysql文件夹映射到【/var/lib/mysql】。如下图照抄就行没有的话就点【添加路径】自己手动添加。滚动条向下滚动找到【环境变量】设置添加如下的环境变量# root数据库密码变量MYSQL_ROOT_PASSWORDas123456# 字符编码变量MYSQL_CHARACTER_SET_SERVERutf8mb4MYSQL_COLLATION_SERVERutf8mb4_unicode_ci按图照抄把代码复制进去只有【MYSQL_ROOT_PASSWORD】后面的【as123456】是数据库的登录密码自己换成你自己的密码这个密码很重要要记好其他都保持默认设置好下一步创建完成即可。3.1 需要注意的是我前面创建的文件夹路径根据路径是/vol2/1000/qwx_space/mysq如何查看根路径四、创建数据库找到容器中已经启动运行的【MySQL】点击容器的【…】选择【终端】点击【/bin/bash】连接依次输入以下命令# 下面代码mysql是容器名称根据自己创建的名称修改mysql-uroot-p输入部署的时候设置的 【root】 密码上面让记住的那个密码哦运行以下代码允许【root】用户将自己拥有的权限授予其它用户GRANT ALL PRIVILEGES ON *.* TOroot%WITH GRANT OPTION;刷新权限# 运行以下命令以确保权限生效FLUSH PRIVILEGES;创建数据表# 下面代码[Gitea]就是数据库名只有在数据库不存在时才创建 Gitea 数据库防止重复创建引起错误。CREATE DATABASE IF NOT EXISTS Gitea;五、遇到的问题以及解决过程5.1 启动报错2025-10-14T16:56:33.304763Z0[System][MY-010931][Server]/usr/sbin/mysqld: readyforconnections. Version:8.0.43socket:/var/run/mysqld/mysqld.sockport:3306MySQL Community Server - GPL.2025-10-14T16:56:33.304774Z0[System][MY-011323][Server]X Plugin readyforconnections. Bind-address:::port:33060, socket: /var/run/mysqld/mysqlx.sock解决方法授权chmod-R755/vol2/1000/qwx_space/chown-R999:999 /vol2/1000/qwx_space/5.2 连接mysql报错连接mysql报错2059 Authenticaton plugincaching_sha_passwordbonnot be loaded该错误是由于MySQL 8.0及以上版本默认使用caching_sha2_password加密方式而部分客户端工具或旧版本驱动不支持该插件所致12。以下是解决方案5.2.1 临时解决方法ALTERUSERroot%IDENTIFIEDWITHmysql_native_passwordBYa12345678;FLUSHPRIVILEGES;其中’a12345678’ 是你之前设置的密码。这种方式驱动包为com.mysql.jdbc.Driver这种方式有可能碰到docker重启后配置实效不一定偶尔碰到过。5.2.2 最佳解决方法caching_sha2_password是mysql8.0推荐的方式。推荐直接更好驱动包把配置里的驱动包换成com.mysql.cj.jdbc.Driver例如spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver查看验证方式sqlSELECTuser,host,pluginFROMmysql.userWHEREuserroot;查看结果5.3 时区修改环境变量里增加TZAsia/Shanghai