百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

群晖NAS安装MySQL数据库及phpMyAdmin实现远程管理本地数据库

wxin55 2024-11-26 09:38 13 浏览 0 评论

前言

本文主要介绍如何在群晖NAS安装MySQL与数据库管理软件phpMyAdmin,并结合cpolar内网穿透工具配置公网地址,实现异地远程访问本地部署的phpMyAdmin详细流程。

群晖安装MySQL具有高效、安全、可靠、灵活等优势,可以为用户提供一个优秀的数据管理和分析环境。同时具有良好的硬件性能和稳定性,可以保障MySQL数据库的高效运行和数据安全.

而phpMyAdmin是用 PHP 脚本写的 MySQL 数据库的管理软件,可以使用 Web 图形模式直接管理 MySQL 数据库。可以用来创建、修改、删除数据库和数据表;导入和导出整个数据库;还可以完成许多其他的 MySQL 系统管理任务。

1. 安装MySQL

在群晖套件中心,我们搜索mariadb,出来搜索结果后点击安装

安装过程中,会提示设置密码,需设置密码

设置完成后,点击完成,开始安装

安装完成后,我们打开配置界面,开启TCP/IP连接,勾选后点击应用

2. 安装phpMyAdmin

上面我们安装了数据库后,需要修改数据表中的root用户的访问方式,使我们可以远程访问,所以我们需要安装phpMyAdmin来修改相关参数.

运行它我们需要安装PHP7.4版本环境,所以我们在套件中心搜索php 7.4 然后安装.

安装完成后,再次在套件中心中搜索phpMyAdmin,然后点击安装

安装完成后我们在"已安装"的套件列表中找到phpMyAdmin,打开

输入数据库用户名root 和我们上面安装数据库的时候设置的密码,登录

3. 修改User表

登录后点击mysql数据库

找到user表

双击修改表中Host字段下面的localhost值

改为%,表示不限制ip访问,这样修改后就可以远程mysql了

然后在群晖套件中心中找到安装的mariadb,停止,然后重新启动,让我们修改的配置生效

4. 本地测试连接MySQL

打开数据库连接工具,输入群晖的局域网ip地址,输入数据库用户名和密码,点击测试连接,出现successful!表示成功!

5. 安装cpolar内网穿透

cpolar群晖套件下载地址:https://www.cpolar.com/synology-cpolar-suite,下载相应版本的套件

打开套件中心,点击右上角的手动安装按钮。

选择我们本地下载好的cpolar安装包。

点击下一步按钮

点击同意按钮

之后,一路点击下一步按钮安装完成即可。

在外部浏览器,我们通过群晖的局域网ip地址9200端口,cpolar的Web管理界面,默认端口为9200,输入cpolar邮箱账号与密码进行登录

6. 配置MySQL公网访问地址

登录成功后,点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复
  • 协议:tcp
  • 本地地址:3306
  • 端口类型:临时随机TCP端口
  • 地区:选择China VIP

点击创建

然后打开在线隧道列表,查看tcp协议的mysql公网连接地址.

接下来我们使用公网地址连接,打开mysql连接工具,输入公网地址和对应的公网端口,同时输入用户名和密码,点击测试连接,出现连接成功表示ok.

7. 配置MySQL固定公网地址

要注意的是,以上步骤使用的是随机临时tcp端口地址,所生成的公网地址为随机临时地址,该公网地址24小时内会随机变化。我们接下来为其配置固定的TCP端口地址,该地址不会变化,设置后将无需每天重复修改地址。

cpolar官网: https://www.cpolar.com

登录cpolar官网,点击左侧的预留,找到保留的tcp地址,我们来为MySQL保留一个固定tcp地址:

地区:选择China 描述:即备注,可自定义 点击保留

地址保留成功后,系统会生成相应的固定公网地址,将其复制下来

进入cpolar web ui管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到我们上面创建的tcp隧道,点击右侧的编辑

修改隧道信息,将保留成功的固定tcp地址配置到隧道中

  • 端口类型:修改为固定tcp端口
  • 预留的tcp地址:填写官网保留成功的地址,

点击更新

隧道更新成功后,点击左侧仪表盘的状态——在线隧道列表,可以看到公网地址已经更新成为了固定tcp地址。

上面我们固定了mysql连接地址,现在我们使用固定的公网地址连接测试,打开mysql连接工具,输入公网地址和对应的公网端口,同时输入用户名和密码,点击测试连接,出现 successful! 表示ok,这样一个在群晖NAS的远程固定的mysql连接地址就设置好了.

8. 配置phpMyAdmin公网地址

同理,如果我们要实现远程访问phpMyAdmin的web页面对本地数据库进行管理,也可以为它配置公网地址:

首先,回到cpolar的Web管理界面(群晖的局域网ip地址9200端口)

点击左侧仪表盘的隧道管理——创建隧道:

  • 隧道名称:可自定义,注意不要与已有的隧道名称重复(本例使用的是 phpmad)
  • 协议:http
  • 本地地址:80
  • 域名类型:随机域名
  • 地区:选择China VIP

点击创建

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网地址,然后复制地址

打开浏览器,使用上面任意一个 公网地址/phpmyadmin 如: https://476b7e33.r21.vip.cpolar.cn/phpmyadmin

然后访问,即可看到登录界面:

使用cpolar内网穿透生成的公网地址,成功实现了远程访问phpmyadmin的web页面对本地数据库进行管理。

9. 配置phpmyadmin固定公网地址

由于以上使用cpolar所创建的隧道使用的是随机公网地址,24小时内会随机变化,不利于长期远程访问。因此我们可以为其配置二级子域名,该地址为固定地址,不会随机变化。

注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称:(本例使用的是 myphpmad 大家可以自定义)

保留成功后复制保留的二级子域名地址 myphpmad

回到cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的phpmad隧道,点击右侧的编辑:

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名 myphpmad

点击更新

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了保留过的二级子域名名称,将其复制下来:

然后使用固定https地址+/phpmyadmin打开浏览器访问,同样访问成功,且域名不会发生变化:

https://myphpmad.vip.cpolar.cn/phpmyadmin/

以上就是如何在群晖NAS安装MySQL与数据库管理工具phpMyAdmin,并使用cpolar内网穿透工具为其分别配置固定公网TCP地址与http地址,实现随时随地远程连接本地局域网内MySQL与使用phpMyAdmin管理数据库的全部流程。感谢您的观看,有任何问题欢迎留言交流。

相关推荐

ES6中 Promise的使用场景?(es6promise用法例子)

一、介绍Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码doSomething(f...

JavaScript 对 Promise 并发的处理方法

Promise对象代表一个未来的值,它有三种状态:pending待定,这是Promise的初始状态,它可能成功,也可能失败,前途未卜fulfilled已完成,这是一种成功的状态,此时可以获取...

Promise的九大方法(promise的实例方法)

1、promise.resolv静态方法Promise.resolve(value)可以认为是newPromise方法的语法糖,比如Promise.resolve(42)可以认为是以下代码的语...

360前端一面~面试题解析(360前端开发面试题)

1.组件库按需加载怎么做的,具体打包配了什么-按需加载实现:借助打包工具(如Webpack的require.context或ES模块动态导入),在使用组件时才引入对应的代码。例如在V...

前端面试-Promise 的 finally 怎么实现的?如何在工作中使用?

Promise的finally方法是一个非常有用的工具,它无论Promise是成功(fulfilled)还是失败(rejected)都会执行,且不改变Promise的最终结果。它的实现原...

最简单手写Promise,30行代码理解Promise核心原理和发布订阅模式

看了全网手写Promise的,大部分对于新手还是比较难理解的,其中几个比较难的点:状态还未改变时通过发布订阅模式去收集事件实例化的时候通过调用构造函数里传出来的方法去修改类里面的状态,这个叫Re...

前端分享-Promise可以中途取消啦(promise可以取消吗)

传统Promise就像一台需要手动组装的设备,每次使用都要重新接线。而Promise.withResolvers的出现,相当于给开发者发了一个智能遥控器,可以随时随地控制异步操作。它解决了三大...

手写 Promise(手写输入法 中文)

前言都2020年了,Promise大家肯定都在用了,但是估计很多人对其原理还是一知半解,今天就让我们一起实现一个符合PromiseA+规范的Promise。附PromiseA+规范地址...

什么是 Promise.allSettled()!新手老手都要会?

Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的pr...

前端面试-关于Promise解析与高频面试题示范

Promise是啥,直接上图:Promise就是处理异步函数的API,它可以包裹一个异步函数,在异步函数完成时抛出完成状态,让代码结束远古时无限回掉的窘境。配合async/await语法糖,可...

宇宙厂:为什么前端离不开 Promise.withResolvers() ?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.为什么需要Promise.with...

Promise 新增了一个超实用的 API!

在JavaScript的世界里,Promise一直是处理异步操作的神器。而现在,随着ES2025的发布,Promise又迎来了一个超实用的新成员——Promise.try()!这个新方法简...

一次搞懂 Promise 异步处理(promise 异步顺序执行)

PromisePromise就像这个词的表面意识一样,表示一种承诺、许诺,会在后面给出一个结果,成功或者失败。现在已经成为了主流的异步编程的操作方式,写进了标准里面。状态Promise有且仅有...

Promise 核心机制详解(promise机制的实现原理)

一、Promise的核心状态机Promise本质上是一个状态机,其行为由内部状态严格管控。每个Promise实例在创建时处于Pending(等待)状态,此时异步操作尚未完成。当异步操作成功...

javascript——Promise(js实现promise)

1.PromiseES6开始支持,Promise对象用于一个异步操作的最终完成(包括成功和失败)及结果值的表示。简单说就是处理异步请求的。之所以叫Promise,就是我承诺,如果成功则怎么处理,失败怎...

取消回复欢迎 发表评论: