[Mysql] 群晖7.21 部署MySQL数据库

打印 上一主题 下一主题

主题 663|帖子 663|积分 1989

群晖7.21 部署MySQL数据库

群晖部署MySQL数据库过程记录
docker-compose方式搭建 mysql
媒介

我在使用群晖的container Manager(群晖7.x及以前的版本为docker) 搭建Mysql 数据库时遇到很多题目,各种报错。
正常来讲,简单container Manager图形交互界面动动鼠标就能搭建好的
详细可以参考这篇教程:
群晖NAS中使用Docker安装MySQL数据库、
但我跟着教程步骤,初始化运行后总是失败,mysql 容器闪退
此中有这样的error log:

  • mysqld.sock 文件不存在

    分析及查询网上分享解决方案都试过了,却没有得到解决。
    参考解决方案
    黑群晖内里docker安装mysql8报错处理惩罚
    快速解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";
我实验解决,浪费了5个多小时的生命却失败了
没有办法,只能用到我为数不多的命令行终端部署技能使用docker-compose 来搭建
以下是总结的步骤:

搭建前预备

安装docker我就不细说了,我们只必要提前预备好docker-compose.yaml文件,及安装的文件夹。

  • 预备映射目录
    在共享文件夹的docker文件夹中新建mysql文件夹,在mysql文件夹新建mysqlmysqlBacker文件夹,并放入我们提前写好的docker-compose.yaml文件
    docker-compose.yaml文件内容:
  1. version: "3"
  2. services:
  3.   mysql:
  4.     image: mysql:8.1.0
  5.     container_name: mysql-test #容器名称,自定义更改
  6.     restart: on-failure:3
  7.     networks:
  8.       mysql_default:
  9.     command:
  10.       - --default-authentication-plugin=caching_sha2_password
  11.       - --character-set-server=utf8mb4
  12.       - --collation-server=utf8mb4_general_ci
  13.       - --explicit_defaults_for_timestamp=true
  14.     volumes:
  15.       - ./mysql:/var/lib/mysql
  16.       - ./mysqlBackup:/data/mysqlBackup
  17.     ports:
  18.       - "3306:3306" #端口,自定义更改,比如3307:3306. 后期就可以在sql工具中使用3307端口访问了
  19.     healthcheck:
  20.       test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
  21.       interval: 3s
  22.       retries: 5
  23.       start_period: 30s
  24.     environment:
  25.       # 请修改此密码,对应root 用户的登录密码
  26.       - MYSQL_ROOT_PASSWORD=123456 #自定义,建议更改,登录需要用到
  27.       - MYSQL_DATABASE=main #建的数据库名,自定义更改
  28. networks:
  29.   mysql_default:
复制代码
docker 新建项目并执行


  • 新建项目
    我们打开docker程序,在项目一栏中新建新的项目
    项目命名自定义,文件路径我们就选择刚刚创建的mysql文件夹

    设置项目路径后,会提示你使用存在的.yaml设置文件,我们确认就好了

    接着一路点击 ‘下一步就行‘

    在弹出的终端界面看到 Exit Code: 0 命令,则代表着,mysql 搭建并启动乐成了

测试毗连mysql


  • 进入终端,实验毗连mysql
    在容器中选择刚创建的 mysql 容器,并打开终端机

    新增bash窗口,(提示输入命令的话,我们输入“/bin/bash”)

    命令行输入框中输入: mysql -u root -p
    输入暗码,回车

    当出现 mysql>, 代表已经毗连上MySQL了。

完善结束

大概遇到的题目及解决


  • 初始化失败
    大概之前创建在mysql文件夹中创建过mysql容器
    路径docker/mysql/mysql中存在旧数据,
    解决
    1)我们删除mysql文件夹,重新创建mysql文件夹一次

    2)我们必要给到映射的文件以权限(参考)
    ssh 命令行运行
  1. chmod -R 777 /volume1/homes/docker/mysql/mysql #你的docker mysql 映射文件夹路径
复制代码
接偏重新构建mysql项目

5. 内网访问mysql 毗连失败
解决
检查网络防火墙、端口、端口映射是否精确
6. 外网使用工具远程毗连数据库失败
MySQL的内部网络访问控制是默认设置,即只答应内部网络访问MySQL数据库,防止来自外部网络的攻击。MySQL主要是通过设置设置文件/etc/mysql/my.cnf来实现内部访问控制。
默认情况下,MySQL只答应本机的IP访问
解决
设置my.cnf 文件,实现外网访问mysql.
教程: 如何实现 MySQL 的外部访问?(mysql外部访问)

  • 教程适用的mysql 版本为8.+,mysql 5.x版本构建存在显着差异。
    我这里给到搭建mysql 5.x 的参考教程:
    通过 docker-compose 快速部署 MySQL保姆级教程
其他教程文章参考

使用docker-compose部署mysql单节点

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表