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

2024-07-11 1755阅读

群晖7.21 部署MySQL数据库

群晖部署MySQL数据库过程记录

docker-compose方式搭建 mysql

前言:

我在使用群晖的container Manager(群晖7.x及以前的版本为docker) 搭建Mysql 数据库时遇到很多问题,各种报错。

正常来讲,简单container Manager图形交互界面动动鼠标就能搭建好的

具体可以参考这篇教程:

群晖NAS中使用Docker安装MySQL数据库、

但我跟着教程步骤,初始化运行后总是失败,mysql 容器闪退

其中有这样的error log:

  1. mysqld.sock 文件不存在[Mysql] 群晖7.21 部署MySQL数据库

    分析及查询网上分享解决方案都试过了,却没有得到解决。

    参考解决方案:

    黑群晖里面docker安装mysql8报错处理

    快速解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";

我尝试解决,浪费了5个多小时的生命却失败了

没有办法,只能用到我为数不多的命令行终端部署技能使用docker-compose 来搭建

以下是总结的步骤:

搭建前准备

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

  1. 准备映射目录

    在共享文件夹的docker文件夹中新建mysql文件夹,在mysql文件夹新建mysqlmysqlBacker文件夹,并放入我们提前写好的docker-compose.yaml文件

    [Mysql] 群晖7.21 部署MySQL数据库 docker-compose.yaml文件内容:

version: "3"
services:
  mysql:
    image: mysql:8.1.0
    container_name: mysql-test #容器名称,自定义更改
    restart: on-failure:3 
    networks:
      mysql_default:
    command: 
      - --default-authentication-plugin=caching_sha2_password
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_general_ci
      - --explicit_defaults_for_timestamp=true
    volumes:
      - ./mysql:/var/lib/mysql
      - ./mysqlBackup:/data/mysqlBackup 
    ports:
      - "3306:3306" #端口,自定义更改,比如3307:3306. 后期就可以在sql工具中使用3307端口访问了
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
      interval: 3s
      retries: 5
      start_period: 30s
    environment:
      # 请修改此密码,对应root 用户的登录密码
      - MYSQL_ROOT_PASSWORD=123456 #自定义,建议更改,登录需要用到
      - MYSQL_DATABASE=main #建的数据库名,自定义更改
networks:
  mysql_default:
docker 新建项目并执行
  1. 新建项目

    我们打开docker程序,在项目一栏中新建新的项目

    项目命名自定义,文件路径我们就选择刚刚创建的mysql文件夹

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

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

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

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

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

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

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

测试连接mysql
  1. 进入终端,尝试连接mysql

    在容器中选择刚创建的 mysql 容器,并打开终端机

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

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

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

    命令行输入框中输入: mysql -u root -p

    输入密码,回车

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

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

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

完美结束

可能遇到的问题及解决

  1. 初始化失败

    可能之前创建在mysql文件夹中创建过mysql容器

    路径docker/mysql/mysql中存在旧数据,

    解决:

    1)我们删除mysql文件夹,重新创建mysql文件夹一次

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

    2)我们需要给到映射的文件以权限(参考)

    ssh 命令行运行

chmod -R 777 /volume1/homes/docker/mysql/mysql #你的docker mysql 映射文件夹路径

接着重新构建mysql项目

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

5. 内网访问mysql 连接失败

解决

检查网络防火墙、端口、端口映射是否正确

6. 外网使用工具远程连接数据库失败

MySQL的内部网络访问控制是默认配置,即只允许内部网络访问MySQL数据库,防止来自外部网络的攻击。MySQL主要是通过配置配置文件/etc/mysql/my.cnf来实现内部访问控制。

默认情况下,MySQL只允许本机的IP访问

解决

配置my.cnf 文件,实现外网访问mysql.

教程: 如何实现 MySQL 的外部访问?(mysql外部访问)

  1. 教程适用的mysql 版本为8.+,mysql 5.x版本构建存在明显差异。

    我这里给到搭建mysql 5.x 的参考教程:

    通过 docker-compose 快速部署 MySQL保姆级教程

其他教程文章参考:

使用docker-compose部署mysql单节点

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]