挑战生产现场物联网 #05 ~ 数据库的安装和设置 ~
首先
要实现来自另一台计算机对MariaDB的远程访问,需要创建外部访问用户、授予权限,并允许客户端PC的IP地址。由于缺少这部分内容,我在2-2款中进行了补充。
由于可以使用I2C连接的传感器获取数据,并且已经有了粗略的整体系统构想,所以我们要确定数据的存储方法。
浏览了一些网络文章等,我认为流行且酷的做法是利用云平台进行数据收集和汇总。但是,由于各种原因,例如“云平台有点可怕”、“没有使用云平台的经费”、“不可能把数据带到外部”,“没有人能够判断是否可以使用外部服务器”,在公司内部想要构建一个紧凑的系统的情况下,可以在树莓派上构建一个用于传感器控制的数据库。
(如果情况允许的话,想要尝试流行且酷的云平台IoT,我希望可以使用这样或那样的工具)
如果专业人士看到这样一个不可靠的树莓派积累数据,可能会对此发怒!但是首先,我希望您能理解这是为了简便体验物联网而创造的工具。即使有一些独特的人想要尝试类似的系统,但请记住这只是一个简易系统,旨在体验物联网,可能存在数据丢失的危险,请予以理解。
此外,关于数据库的初始设置等,虽然会进行说明,但是在本次任务中,我是一个完全初学者,可能会犯一些错误或者使用不当的方法。关于数据库的使用方法,我会在其他的解释网站或者书籍中更加详细地学习,并且希望您能够友善地指出本文中的错误等。
2. 安装MariaDB。
前述过轻轻涉及了一下,我们所使用的数据库软件是MariaDB,这是一个与MySQL兼容的免费软件。请安装它,并进行所需的数据库设置。
2-1. 安装方法
MariaDB的安装可以在终端上进行。
随着Raspberry Pi OS的升级,MariaDB安装时的配置方法已经发生了变化。在这篇文章中进行了介绍。
请使用以下命令进行安装。
$ sudo apt-get install mariadb-server
允许远程登录
MariaDB的配置将如下一项所述,在远程环境中进行,因此必须配置以使其可以通过网络访问。
关于配置的详细说明可在此页面上找到,请按照该页面上的说明进行配置。
只需要写下必要的命令作为备忘录。
※ 请注意操作方法,因为安全性未被考虑,系统处于自由访问状态。
$ sudo mysql -u root
MariaDB [(none)]> USE mysql;
MariaDB [mysql]> UPDATE user SET plugin='' WHERE User='root';
MariaDB [mysql]> exit
$ sudo systemctl restart mysql
$ mysql -u root
MariaDB [(none)]> update mysql.user set password=password('パスワード') where user = 'root';
MariaDB [(none)]> exit
重新开始。无需密码。
$ mysql -u root -p
Enter password:
MariaDB [(none)]> CREATE USER 'root'@'%' IDENTIFIED BY 'パスワード'; //外部からのアクセス用ユーザー作成(追記)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; //ユーザーにすべての権限を付与(追記)
MariaDB [(none)]> exit
$ sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf //テキストエディタで設定ファイル編集
#bind-address=127.0.0.0 //この行をコメントアウト //クライアントPCをIPアドレスで規制しない場合はコメントアウト
$ sudo systemctl restart mysql
※用户名可以设为root,但也可以是其他用户名。
※请将密码更改为任意密码。
如何创建用户参考
授予权限的方法参考
关于数据库开发环境的情况
我們將在樹莓派上使用MariaDB資料庫,但是在樹莓派上建立資料庫相當麻煩。因此,在建立資料庫時,我們將將樹莓派連接到LAN,並從Windows10電腦遠程進行構建。
关于HeidiSQL的问题是什么?
HeidiSQL是一款在Win10上运行的用于管理数据库的GUI软件。
当允许远程登录时,可以使用被称为SQL的语言来控制MariaDB,但每次都使用SQL是相当痛苦的。
使用HeidiSQL可以通过图形界面构建和设置数据库,并查看和导出已存储的数据,非常方便。事实上,如果没有GUI工具,我感觉无法处理数据库。
虽然也有一些可以在树莓派上使用的GUI工具,但在尝试了几种之后,发现HeidiSQL是最易用的,所以今后的说明将主要使用HeidiSQL。
HeidiSQL的缺点是无法在树莓派上运行,但如果在同一局域网中连接,远程访问也很容易。
※虽然可以使用在Linux上运行Win10应用程序的工具来使用HeidiSQL,但我还没有尝试过。如果成功运行了,我会报告的。
安装HeidiSQL软件。
您可以从这个官方网站下载HeidiSQL. 虽然安装过程应该没有什么问题,但如果有不明白的地方,可以参考这个网站上详细的说明。
创建数据库
如果成功安装了HeidiSQL,那么接下来我们需要连接到树莓派并创建数据库。
## 4-1. 确认树莓派的IP地址
当你将鼠标悬停在树莓派屏幕顶部的网络连接图标上时,会显示IP地址。
或者你可以打开树莓派的终端,并使用ifconfig命令确认连接状态。
在inet后面的显示就是IP地址。
使用四減二去連接到MariaDB。
建立一个数据库。 .)
创建表和列
更改列的设置为4-2。
设定按键为4-3。
点击“保存”按钮后,成功创建了表格。
总结
虽然赶时间,但我已经在树莓派上创建了数据库。
即使测量项目增加了,只要按照相同的步骤添加列和表,就可以记录下来。
起初可能会感到困惑,但是要不断地实践来熟悉。
6. 额外附赠…关于树莓派数据库的损坏
如前所述,使用树莓派配置数据库存在数据损坏的风险。对于使用树莓派进行物联网系统开发而言,这是一个常见问题,但主要存储器microSD卡数据损坏的事故较多。
在个人观点中,这类事故的最大原因是在向microSD卡写入数据时,电源突然中断。比如线路松动、断电、工厂停电或瞬间停电等情况,会导致在写入数据时电源中断,进而导致microSD卡数据损坏的情况。
对于这个问题,以下两种方法都是有效的防范措施:
1. 在ROM模式下使用microSD卡。
2. 使用UPS设备,在电源中断时进行安全关机。
由于我们需要将其作为数据库使用,无法使用ROM模式来使用microSD卡,所以我们需要采取第二种防范措施。另外,在将来的机会里,我希望能够介绍一下专为树莓派而设计的UPS设备,建议大家作为数据损坏的防范措施来采购。
顺便提一下,我目前在没有任何保护措施的情况下运行着,勉强撑过去了…我收到了自制UPS电路板,但还没有着手处理它…