您的旧笔记本电脑就是您的新数据库服务器
几周前,我几乎意外地在公寓里发现了一台积满灰尘的旧笔记本电脑:一台我 2014 年购买的联想 Thinkpad T440s。
规格:
- 英特尔® 酷睿™ i7
- 8 GB DDR3L-SDRAM
- 256 GB 固态硬盘
它看起来非常适合用作始终可用的服务器;一台我可以随时连接并安装开发应用程序所需的任何服务器软件的机器。在 Docker 容器时代,配置一台机器来运行服务器软件非常容易。在本文中,我将向您展示如何利用那台旧笔记本电脑,安装Ubuntu Server、Docker和MariaDB数据库,并进行所有必要的配置,使其始终可用、始终在线。
等等,但是为什么呢?
让一台旧电脑运行数据库服务器之类的东西值得吗?答案一如既往:视情况而定。更具体地说,这取决于你打算如何使用它。显然,有些事情你无法将旧笔记本电脑重新利用。例如,如果你想用它存储大文件,或者运行大数据应用程序或实验,你可能需要使用云存储、云数据库,或者购买一台符合你需求的合适设备。
但总的来说,我认为重新利用旧电脑是值得的。尤其是在实验或开发/测试环境之类的情况下,普通的硬件通常就足够了。而且,你已经有这台机器了!所以,为什么不好好利用它呢?
开始之前
开始之前,请确保备份所有想要保留的重要文件。查找文档、照片、视频等所有类型的文件。花一个小时左右的时间在硬盘中查找有价值的内容。安全总比后悔好!使用外部驱动器或 Google Drive 或 Dropbox 等云服务提供商来移动文件。或者,如果已配置,请使用本地网络将文件从旧笔记本电脑移动到新笔记本电脑。
根据您计划使用笔记本电脑的用途,您可能需要使用File Shredder、Eraser或CCleaner等软件加密其内容或安全擦除敏感数据。
安装服务器操作系统
选择一款符合你需求的操作系统。我推荐使用无头操作系统,因为你不需要花哨的图形用户界面,因为这可能会浪费计算资源。
您有很多选择。以下仅列举几个:
确保使用符合您需求的版本。例如,检查您稍后要在服务器上安装的软件是否与操作系统兼容。
我选择了Ubuntu Server,在我看来,它可能是最容易安装和使用的。我不会详细介绍如何安装它。您可以找到大量在线资源,详细解释如何执行此操作。简而言之,您需要一个 USB 闪存驱动器,下载 Ubuntu Server ISO 映像,然后使用Etcher或Rufus等程序创建可启动的 USB 驱动器。然后,将此 USB 驱动器连接到笔记本电脑并从中启动。在我的 Thinkpad 上,我必须在笔记本电脑启动时按F11键才能进入启动菜单并选择 USB 驱动器。从那里开始,就像按照步骤一样简单。
另外,请确保安装 SSH 服务器(Ubuntu Server 默认包含此功能)。
设置静态 IP 地址
配置网络连接时,请设置静态 IP,以便您可以从其他计算机(例如,您的软件开发计算机)连接到服务器。在 Ubuntu Server 中,您可以在安装过程完成后通过修改/etc/netplan/00-installer-config-wifi.yaml文件来执行此操作,如下所示:
network:
version: 2
wifis:
wlp3s0:
access-points:
YOUR_WIFI_CONNECTION_NAME:
password: YOUR_WIFI_PASSWORD
dhcp4: false
addresses: [192.168.1.200/24]
routes:
- to: default
via: 192.168.1.1
使用您的 Wi-Fi 连接名称、密码和网关。在上面的示例中,我分配了静态 IP 地址 192.168.1.200。您可以使用以下命令重新加载配置:
sudo netplan apply
关闭盖子时禁用睡眠
您可能希望服务器即使在关闭盖子的情况下也能继续运行。要禁用 Ubuntu 服务器的睡眠或进入挂起模式,请按如下方式编辑/etc/systemd/logind.conf。
确保以下行未被注释掉,并且其值如所示:
HandleLidSwitch=lock
LidSwitchIgnoreInhibited=no
完成!盖上盖子,把服务器放在家里任何你想放的地方。我的服务器就放在办公室的一个角落里:
通过 SSH 连接服务器
现在您可以转到您的开发机器并使用以下命令通过SSH连接到服务器:
ssh alejandro@192.168.1.200
当然要指定你在安装Ubuntu Server时创建的用户,而不是我的名字。
虽然您可以使用 IP 地址连接到服务器,但您可以在开发计算机中配置一个映射到服务器 IP 地址的主机名。只需在 Linux 类计算机上的/etc/hosts文件或 Windows 上的c:\Windows\System32\drivers\etc\hosts 文件中添加一个条目即可:
192.168.1.200 thinkpad.local
指定服务器的 IP 地址并使用任意主机名。最好.local
在末尾添加,以记住主机名是本地网络的,并且对外部世界不可见。在 macOS 上,如果要避免冗长的 DNS 查找,从而降低连接速度,则还必须添加 IPv6 地址。例如:
fe80::2ab2:bdff:fea2:17dc thinkpad.local
现在您可以使用以下命令连接到服务器:
ssh alejandro@thinkpad.local
请注意,如果您想使用主机名从其他机器连接到服务器,则必须在所有机器上进行配置。
安装 Docker
Docker是一款虚拟化工具,可用于为应用程序创建隔离的环境。与虚拟机(虚拟机管理程序)不同,容器在操作系统上运行,无需虚拟化硬件。
如果您更喜欢使用虚拟机而不是容器,那么Vagrant是一个不错的选择。Vagrant 允许您通过VirtualBox或其他虚拟机管理程序(在 Vagrant 术语中称为提供程序)自动创建和配置虚拟机。我认为在旧笔记本电脑上运行虚拟机有点小题大做。运行容器可以提供良好的隔离,而且从开发人员的角度来看,它们看起来就像虚拟机一样。因此,我建议改用 Docker。
您也可以在 Ubuntu Server 上直接在裸机上安装任何服务器软件(例如数据库);然而,使用容器可以让您灵活地尝试不同的选项,而无需卸载并重新安装软件。您只需运行要使用的容器,然后停止或删除它们,而不会干扰您的基础操作系统。此外,还有许多现成的 Docker 镜像(镜像就像创建容器的模板),适用于各种有趣的应用程序。这简化了安装数据库、Web 服务器和其他工具的过程。
要安装 Docker,请按照上述说明使用 SSH 连接到新服务器并运行以下命令:
sudo apt-get install docker.io
确认Docker 守护进程正在运行:
sudo systemctl status docker
您应该会看到Active下显示活动(正在运行)。
安装数据库服务器
如果您在 Google 上搜索数据库名称加上“docker 镜像”,就能找到使用 Docker 安装该数据库所需的信息。本文将演示如何安装 MariaDB 社区服务器,这是一款高级开源 SQL 数据库服务器。请注意,如果您订阅了 MariaDB,则可以安装MariaDB 企业服务器,这是 MariaDB 社区服务器的增强版、强化版和安全版。
下载 MariaDB 社区服务器镜像并使用 Docker 运行它:
sudo docker run --detach --name mariadb --restart unless-stopped --env MARIADB_ROOT_PASSWORD='password' --publish '3306:3306/tcp' --expose '3306' mariadb:latest
这将在名为mariadb 的容器中运行 MariaDB 服务器。容器会在重启计算机时自动启动,除非您手动停止容器,如下所示:
docker container stop mariadb
通过检查容器状态是否为Up来确认容器正在运行:
docker container ls
从输出中复制容器的 IPv4 地址:
docker network inspect bridge
使用该 IP 地址从运行 Docker 的服务器连接到 MariaDB 服务器。例如:
mariadb -h 172.17.0.2 -u root -p
现在结束 SSH 会话以断开与服务器的连接:
exit
从您的开发计算机,使用主机名(如果您未配置主机名,则使用 IP 地址)连接到 MariaDB 数据库。例如:
mariadb -h thinkpad.local -u root -p
尝试运行 SQL 查询:
恭喜!您的旧笔记本电脑现在是您的新数据库服务器了。
保护数据库服务器
您可能需要为root用户设置一个强密码(有趣的事实:MariaDB Enterprise Server甚至不允许您使用弱密码):
SET PASSWORD FOR 'root'@'%' = PASSWORD('Password123!');
也许您还想创建一个新的“几乎 root”用户:
CREATE USER 'user'@'%' IDENTIFIED BY 'Password123!';
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%';
也许你想禁用root用户对数据库的远程访问,在这种情况下,如果你想以root身份连接到数据库,则必须先通过 SSH 连接到服务器。以下是如何禁用root的远程访问:
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');
下一步是什么?
您还可以在新服务器上安装许多其他东西。持续集成服务器、Web 服务器、 电子邮件服务器等等。Docker Hub是一个庞大的镜像目录,您可以在隔离的 Docker 容器中安全地试用这些镜像。您可以随时运行容器,并在实验完成后将其删除。例如,您可以按如下方式删除 MariaDB 容器:
docker container stop mariadb
docker rm mariadb
接下来尝试使用 ColumnStore 的 MariaDB。ColumnStore是 MariaDB 数据库的存储引擎,它可以提高临时分析查询的性能,而无需维护数据库索引。您可以通过 Docker安装使用 ColumnStore 的 MariaDB :
sudo docker run --detach --name mariadb-columnstore --restart unless-stopped --env MARIADB_ROOT_PASSWORD='password' --publish '3306:3306/tcp' --expose '3306' mariadb/columnstore:latest
现在您可以创建使用 ColumnStore 引擎的表:
CREATE TABLE some_table(
... column definitions here ...
) ENGINE=ColumnStore;
享受您的新数据库服务器!
文章来源:https://dev.to/alejandro_du/your-old-laptop-is-your-new-database-server-4fca