群晖、NAS、PVE、飞牛、二手品牌机、垃圾佬

每一位热爱生活的垃圾佬都值得敬畏

群晖NAS docker系列教程(一)、利用Docker安装MySQL8并远程访问

群晖NAS教程(一)、利用Docker安装MySQL8并远程访问 为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学 […]

群晖NAS教程(一)、利用Docker安装MySQL8并远程访问

为了更好的浏览体验,欢迎光顾勤奋的凯尔森同学个人博客http://www.huerpu.cc:7000

做为一个NAS发烧友玩家,在追求极致硬件配置的同时,也想在各个方面压榨一下自己的黑群晖,要不就对不起自己投入那么多的毛爷爷了。
你是不是经常苦恼,在各个电脑服务器安装了N多个MySQL,连自己都搞混了不知道该用哪一个?!
那我们在自己的NAS上安装一个吧,可以永久使用。
不用担心重装操作系统之后或者阿里云服务器到期之后的苦恼,来体验一下可以替代阿里云的NAS上使用docker安装并且远程访问的mysql吧,它不但可以用于日常的开发库,还可以当做自己小博客的生产库,N多好处快来体验。

一、我的群晖概览

项目 配置 RMB
CPU i7 8700T 1245元
主板 技嘉B365 M AORUS ELITE 509元
内存条 美商海盗船 DDR4 3000Hz 8G * 4 1000元
机箱 万由NSC-810A U-NAS 1150元
电源 海韵350W 450元
散热 英特尔CPU自带散热 没花钱
SSD 三星980 500G * 2 1000元
NAS硬盘 希捷酷狼 4T * 8 6250元
11604元

0001.png
0001.png
群晖的配置是不是可以达到骨灰级玩家了呢,请看花了一万多自己组装的NAS配置。采用了低功耗的i7八代8700T,无论是性价比、性能、功耗,这个U绝了。硬盘采用了高端的希捷NAS酷狼专用盘,读写速度和安全性都更胜一筹。内存卡槽加了4条DDR4 3000Hz的海盗船马甲线。此外,还用了三星刚出的980 500G的两块SSD做了读写缓存,因为自己的NAS还加配了一个万兆的网卡,所以另外买了一台万兆的交换机,在内网的访问速度简直绝了,废话不说,请看图:
0001.png

二、安装Docker

在群晖套件中心搜索docker,点击安装即可。
0001.png

三、安装MySQL

进入Docker,点击注册表,搜索mysql,如图第一个即是需要安装的mysql,右键下载此映像,选择8.0.4。
0001.png
0001.png
下载安装完成后系统会通知,在Docker的映像一栏中即可看到该映像和大小,291MB。
0001.png

四、创建容器并运行MySQL

Docker安装成功后,在文件根目录默认会创建一个docker文件夹。在此docker文件夹下创建一个mysql8共享文件夹,并且在mysql8下建立conf、data、logs文件夹,分别用于存储配置文件、数据、错误日志。在创建容器时会用到它们并给对应的映射关系。
选中mysql映像并点击启动,进行创建容器的操作界面,容器名称随便定义。

0001.png
高级设置里面,启用自动重新启动打上勾。
0001.png
在配置mysql的data等存放之前,先在群晖的系统里增加conf、data、logs文件夹。
0001.png
在存储空间这里,选择添加文件夹,然后选择上面创建的三个文件夹,并填写相应的装载路径,超easy。
0001.png
这里设置容器内部的端口号和容器暴露给宿主机的端口号(即本地端口号),本地端口号会在下面配置远程访问端口转发的时候使用。
0001.png
对于环境这里,一定要配置上MYSQL_ROOT_PASSWORD,否则后续会失败无法连接的。
0001.png
0001.png
因为49197有端口冲突,所以我们改成了49198。
0001.png

五、MySQL的远程配置

点击容器 -- mysql8.0.4 -- 右键详情。
0001.png
将tab页转到终端机,并且新增,这样即可连接到容器里面,从而去敲Linux命令。
0001.png

安装vim:

apt-get update
apt-get install net-tools
apt-get install vim

0001.png
另外两个类似的,这里就不截图了。
登录mysql:

mysql -u root -p

输入密码后执行下面命令,

grant all privileges on *.* to ‘root’@’%’ ;

0001.png
然后执行:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

然后退出MySQL即可。

六、路由器设置端口转发

家里使用的是小米路由器,在登录路由器之后,选择高级设置 -- 端口转发。然后新增一个端口转发规则,外部访问端口是我们使用Navicat连接的时候的端口号,而内部端口就是刚才设置容器暴露给宿主机的端口号。注意mysql8暴露给外面的端口号只能为4位,如果你设置成49198将连接不通,这应该是mysql底层有相应的限制吧,搞不懂,就先这样。
0001.png

因为mysql是在容器上跑的,容器内部的端口号仍然是3306,但是容器暴露给宿主机的端口是49198,我们需要把这个49198端口映射到外网端口6034上,家里使用的是小米路由器,在高级设置 -- 端口转发设置如下:
0001.png
0001.png

七、Navicat测试连接

打开Navicat进行远程连接设置。主机填写nas在DDNS上的解析域名即可,我这里使用了二级域名。输入用户名、密码、端口号,测试连接。
0001.png
连接成功,大功告成。