去评论
dz插件网

使用家用NAS搭建自己网站的云数据库甚至直接作为云数据库服务器给任何网站提供云数据库托管服务让NAS给你赚云服务器商的钱

惧愁人
2024/10/27 17:43:16
使用家用NAS搭建自己网站的云数据库甚至直接作为云数据库服务器给任何网站提供云数据库托管服务让NAS给你赚云服务器商的钱:
现在谁家没有个NAS,只是很多站长不知道NAS能干吗,换句话说,只需个千把块你一年云服务器还便宜的钱,买台NAS放在你自己家里,不能可以当作云服务器,还有更多可以玩法可以至少把你每年服务器钱的省了,这里只以今天的主题:搭建自己的云数据库,甚至当起淘宝云数据库厂商卖云数据库给其他站长使用:

这里以威联通QANP的NAS为例:
首先直接在威联通的App Center安装数据库,这里选择安装的是MariaDB 10,相当于MySQL 8.0,如下图所示,安装如下版本:

要问 MariaDB和MySQL的关系,MariaDB是比MySQL更纯正原生且更稳定的分支,简单说更稳定更快:
威联通这里安装好的MariaDB 10.5.8版本对应MySQL 8.0可以无缝支持MySQL5.7~8.x导入到MariaDB 10
安装好后,我们还需要在系统——控制台——应用程序——Web服务器:如下图,启用:

启用完成后,然后再回到 App Center 安装管理MariaDB的phpMyAdmin软件:

安装好 MariaDB 数据库和数据库管理软件 phpMyAdmin 后,回到主菜单,
找到 MariaDB 10,点击进入:

按照引导提示安装MariaDB,设置根密码,也就是数据库的root密码:

设置好root密码后,我们也是一样在主菜单,点开 phpMyAdmin :
如下图,需要注意:选择服务器:  这里选择 MariaDB 10:


用户名:root
密码:就是根密码,你一开始安装 安装MariaDB 设置的密码
进入后,点击导入,导入你原来服务器备份的数据库,比如宝塔面板:


宝塔这里备份后,点击下载,下载到本地电脑:
在NAS那边先预先 创建个账户和对应数据库跟你宝塔那边一模一样的数据库用户和数据库名,这样方便无缝迁移。如下图:


创建好后,点击 顶部菜单 “导入”刚刚我们从宝塔下载到本地的数据库备份:



导入之前,我们输入个命令,确保导入的高可靠性:
在sql中输入:【只需要执行一次】
  1. set global max_allowed_packet = 2*1024*1024*10
如图:


你可以把你所有网站的数据库都迁移过来,其他数据库以此类推,有多少数据库账户和数据库数,都可以迁移到NAS上,

最后在discuz论坛配置文件修改对应数据库地址改为NAS的数据库地址:
NAS的 MariaDB 10在你安装过程会让你设置端口号,默认端口号是 3307:
那么对应discuz的配置文件:
/config/config_global.php
/config/config_ucenter.php
/uc_server/data/config.inc.php

查找:
  1. ['dbhost']

  1. 'UC_DBHOST'
后面的默认一般是:127.0.0.1 或者  localhost
那么修改为NAS的地址就是:
  1. 你自己设置的别名.mycloudnas.com:3307

依次把上面3个配置文件的数据库DBHOST修改为NAS的地址,如下图所示:



对了,无论威联通NAS还是群晖NAS,都会给你分配一个全球加速的DDNS地址,那个地址就是你云数据库的地址,后面带上MariaDB你设置的端口号!

NAS上的 MariaDB 10 总比你云服务器的性能强N倍,至少带宽最弱以普通家用带宽100M来说,都是上行50M,下行90M+;何况现在都是千兆带宽,上行也是稳定400M+,
而且威联通NAS分配的DDNS地址是全球加速的CDN加速地址,还可以提供访问者就近加速节点的访问,

NAS搭建自己的云数据库可用性可控性好处太多,比如你国外未备案服务器,如果把数据库走自己家里的NAS的云数据库,瞬间速度不知道翻倍多少,你可以视为discuz论坛的速度快慢都是背后数据库性能的直接影响,所访问论坛的每个页面都是数据库查询结果的显示,这么说你应该理解数据库性能的优化和提供数据库的服务器性能和带宽的优化的重要性吧。

然后 NAS 的内存 最屎的也都是 8G起步,比你自己那千把块钱一年的云服务器要强多了,而且以此类推,把NAS完成你自己的云数据库服务器提供商,淘宝挂个共享云数据库服务器,月月可以收租金。

下面提供NAS搭建自己的云数据库服务器的进阶性能优化与自动计划任务备份和自动多地存储备份实操教程:
先打开NAS的SSH连接:


SSH连接家里NAS,在/usr/local/sbin/创建个计划任务脚本:【以下配置文件还是命令中,汉字部分请以你实际创建的自己的名字为准,不要完全照抄~】
  1. sudo touch /usr/local/sbin/backup_你数据库名字.sh
然后编辑新创建的这个文件:
  1. sudo vi /usr/local/sbin/backup_你数据库名字.sh
写入脚本内容:【以下配置文件还是命令中,汉字部分请以你实际创建的自己的名字为准,不要完全照抄~】
  1. #!/bin/bash
  2. /mnt/ext/opt/mariadb10/bin/mysqldump -u root -p你数据库的根密码 你数据库名字 | gzip > /share/CACHEDEV1_DATA/你NAS的共享文件夹名字/MySQL_Bak/$(date +%Y%m%d)_你数据库名字.sql.gz
解析:
$(date +%Y%m%d) 意思是调用备份当时日期,
/share/CACHEDEV1_DATA/ 是指NAS的共享文件夹路径,

最后给新建的脚本可执行权限:
  1. sudo chmod +x /usr/local/sbin/backup_你数据库名字.sh

然后添加计划任务命令:
  1. sudo vi /etc/config/crontab
在最后面挨个原有内容新起一行:
比如,每天凌晨02:30自动备份:
  1. 30 2 * * * /usr/local/sbin/backup_你数据库名字.sh
最后保存后,重启下计划任务服务:
  1. sudo crontab /etc/config/crontab && /etc/init.d/crond.sh restart
然后还需要修改下默认的 socket 路径配置,不然自动备份执行会报错:
"Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" when trying to connect

修改地址:
  1. sudo vi /etc/config/my.cnf
把两处的:
  1. /tmp/mysql.sock
全部修改为:
  1. /var/run/mariadb10.sock
最后正确配置参考为:
  1. # The following options will be passed to all MariaDB clients
  2. [client]
  3. #password        = your_password
  4. port                = 3306
  5. socket                = /var/run/mariadb10.sock

  6. # Here follows entries for some specific programs

  7. # The MariaDB server
  8. [mysqld]
  9. port                = 3306
  10. socket                = /var/run/mariadb10.sock


最后一步,根据运行在我NAS上面的40多个维护的数据库站长客户的性能优化经验分享,MariaDB 的配置文件的极致优化配置参数:
注意:实际上 在NAS上 MariaDB 10的配置文件不是 /etc/config/my.cnf
实操配置如下:
[此处包含隐藏内容,如果需要查看请回复]
最后怎么看设置后你NAS搭建的云数据库服务器性能有没有提升的方法,还是上面安装好的 phpMyAdmin软件,打开后,顶部菜单“状态”:


至此,有了自己的NAS搭建的云数据库服务器了,何必花钱在买什么阿里云、腾讯云的云数据库,自己的不香吗?而且还快,不是嫌自己未备案的服务器的网站访问慢吗?网站程序在国外云服务器,数据库放到国内你自己家里NAS不香吗~

更多玩法更多建站技巧可以在DZ插件网右上角的站长交流群联系交流~

- DZ插件网独家授权首发分享,转载请注明出处! -