{"id":7006,"date":"2025-07-30T15:19:54","date_gmt":"2025-07-30T06:19:54","guid":{"rendered":"https:\/\/blog.smartlight.co.jp\/?p=7006"},"modified":"2025-07-30T15:19:55","modified_gmt":"2025-07-30T06:19:55","slug":"mysql-x-node-red-x-grafana%e3%81%a7%e3%83%87%e3%83%bc%e3%82%bf%e5%8f%af%e8%a6%96%e5%8c%96%e3%82%92%e8%a9%a6%e3%81%97%e3%81%a6%e3%81%bf%e3%81%9f","status":"publish","type":"post","link":"https:\/\/blog.smartlight.co.jp\/?p=7006","title":{"rendered":"MySQL \u00d7 Node-RED \u00d7 Grafana\u3067\u30c7\u30fc\u30bf\u53ef\u8996\u5316\u3092\u8a66\u3057\u3066\u307f\u305f"},"content":{"rendered":"\n<p>\u30bb\u30f3\u30b5\u30fc\u306e\u4ee3\u308f\u308a\u306b\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u3092\u81ea\u52d5\u751f\u6210\u3057\u3066\u3001MySQL\u306b\u4fdd\u5b58\u3057\u3001Grafana\u3067\u53ef\u8996\u5316\u3059\u308b\u6d41\u308c\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL\u306e\u6e96\u5099<\/h2>\n\n\n\n<p>\u307e\u305a\u306fMySQL\u5074\u3067\u3001\u30e9\u30f3\u30c0\u30e0\u30c7\u30fc\u30bf\u3092\u5165\u308c\u308b\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">&lt;code&gt;CREATE DATABASE sensor_data;\n<span class=\"hljs-keyword\">USE<\/span> <span class=\"hljs-title\">sensor_data<\/span>;\n\nCREATE TABLE random_numbers (\n    id INT AUTO_INCREMENT PRIMARY KEY,\n    timestamp DATETIME NOT <span class=\"hljs-keyword\">NULL<\/span>,\n    value FLOAT NOT <span class=\"hljs-keyword\">NULL<\/span>\n);&lt;\/code&gt;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Node-RED\u3067\u30e9\u30f3\u30c0\u30e0\u30c7\u30fc\u30bf\u3092\u81ea\u52d5\u751f\u6210<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"227\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-34-1024x227.png\" alt=\"\" class=\"wp-image-7010\" srcset=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-34-1024x227.png 1024w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-34-300x67.png 300w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-34-768x170.png 768w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-34.png 1186w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-34-1024x227.png 856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u4eca\u56de\u306f\u30bb\u30f3\u30b5\u30fc\u3092\u4f7f\u308f\u305a\u306b\u3001Node-RED\u3067\u30e9\u30f3\u30c0\u30e0\u306a\u6570\u5024\u3092\u4f5c\u308b\u7c21\u5358\u306a\u30d5\u30ed\u30fc\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Inject\u30ce\u30fc\u30c9<\/strong> \u2192 \u4e00\u5b9a\u9593\u9694\u3067\u30c7\u30fc\u30bf\u751f\u6210\u30c8\u30ea\u30ac\u30fc<\/li>\n\n\n\n<li><strong>Function\u30ce\u30fc\u30c9<\/strong> \u2192 \u30e9\u30f3\u30c0\u30e0\u5024\u3092\u4f5c\u6210<\/li>\n\n\n\n<li><strong>MySQL\u30ce\u30fc\u30c9<\/strong> \u2192 \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u66f8\u304d\u8fbc\u307f \u203b\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u306fSQL\u3067\u8a2d\u5b9a\u3057\u305f\u3082\u306e\u3092\u5165\u308c\u308b<\/li>\n<\/ul>\n\n\n\n<p>Function\u30ce\u30fc\u30c9\u306e\u30b3\u30fc\u30c9\u306f\u3053\u3093\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\"><span class=\"hljs-keyword\">let<\/span> randomValue = (<span class=\"hljs-built_in\">Math<\/span>.random() * <span class=\"hljs-number\">50<\/span>).toFixed(<span class=\"hljs-number\">2<\/span>);\nmsg.topic = <span class=\"xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>INSERT INTO sensor_data(sensor_name, value) VALUES ('RandomSensor', ${randomValue})<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">span<\/span> <span class=\"hljs-attr\">style<\/span>=<span class=\"hljs-string\">\"background-color: initial;font-family: inherit;font-size: inherit;text-align: initial;color: initial\"<\/span>&gt;<\/span>;<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">span<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/span><span class=\"hljs-keyword\">return<\/span> msg;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Math.random() * 50 \u2192 0\uff5e50\u307e\u3067\u306e\u30e9\u30f3\u30c0\u30e0\u5024\u3092\u4f5c\u6210<\/li>\n\n\n\n<li>SQL\u6587\u3092msg.topic\u306b\u5165\u308c\u3066MySQL\u30ce\u30fc\u30c9\u306b\u6e21\u3059<\/li>\n\n\n\n<li>inject\u30ce\u30fc\u30c9\u3067\u6570\u79d2\u304a\u304d\u306b\u5b9f\u884c\u3059\u308b\u3088\u3046\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Grafana\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n\n\n\n<p>Grafana\u306f\u516c\u5f0f\u30b5\u30a4\u30c8\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3057\u305f\u3002<br>(<a>https:\/\/grafana.com\/grafana\/download<\/a>)<\/p>\n\n\n\n<p>\u81ea\u5206\u306e\u74b0\u5883\u306fWindows\u306a\u306e\u3067\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u30fc\u3092\u9078\u629e\u3002<br>\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u5f8c\u3001\u81ea\u52d5\u3067\u30b5\u30fc\u30d3\u30b9\u304c\u8d77\u52d5\u3057\u3001\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>URL: <code>http:\/\/localhost:3000<\/code><\/li>\n\n\n\n<li>\u521d\u671f\u30e6\u30fc\u30b6\u30fc: <code>admin<\/code><\/li>\n\n\n\n<li>\u521d\u671f\u30d1\u30b9\u30ef\u30fc\u30c9: <code>admin<\/code> (\u521d\u56de\u30ed\u30b0\u30a4\u30f3\u5f8c\u306b\u30d1\u30b9\u30ef\u30fc\u30c9\u5909\u66f4\u8981\u6c42\u3042\u308a)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Grafana\u306e\u8d77\u52d5\u3068\u521d\u671f\u8a2d\u5b9a<\/h2>\n\n\n\n<p>\u30ed\u30b0\u30a4\u30f3\u3057\u305f\u5f8c\u3001\u6700\u521d\u306b\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u8ffd\u52a0\u3059\u308badd new connection\u306b\u9032\u307f\u3001<br>\u3053\u3053\u3067\u300cMySQL\u300d\u3092\u9078\u629e\u3057\u3001\u81ea\u5206\u306emysql\u306e\u60c5\u5831\u3092\u5165\u529b\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"401\" height=\"251\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-35.png\" alt=\"\" class=\"wp-image-7011\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"783\" height=\"442\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-36.png\" alt=\"\" class=\"wp-image-7012\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"714\" height=\"575\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-37.png\" alt=\"\" class=\"wp-image-7013\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u4f5c\u6210<\/h2>\n\n\n\n<p>\u6b21\u306b\u300cNew Dashboard\u300d\u304b\u3089\u300cAdd Visualization\u300d\u3092\u9078\u629e\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"158\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-38-1024x158.png\" alt=\"\" class=\"wp-image-7014\" srcset=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-38-1024x158.png 1024w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-38-300x46.png 300w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-38-768x118.png 768w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-38.png 1500w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-38-1024x158.png 856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"304\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-40-1024x304.png\" alt=\"\" class=\"wp-image-7016\" srcset=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-40-1024x304.png 1024w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-40-300x89.png 300w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-40-768x228.png 768w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-40.png 1209w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-40-1024x304.png 856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><br>\u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u306bMySQL\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"242\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-39-1024x242.png\" alt=\"\" class=\"wp-image-7015\" srcset=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-39-1024x242.png 1024w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-39-300x71.png 300w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-39-768x182.png 768w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-39.png 1052w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-39-1024x242.png 856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u305d\u306e\u5f8c\u3001Nodata\u306equery\u304c\u8868\u793a\u3055\u308c\u308b\u305f\u3081\u53f3\u4e0b\u306ecode\u3092\u9078\u3073\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u4f5c\u6210\u3057RUN\u3092\u62bc\u3059\u3053\u3068\u3067\u30b0\u30e9\u30d5\u304c\u8868\u793a\u3055\u308c\u308b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>SELECT<\/p>\n\n\n\n<p>\u00a0 UNIX_TIMESTAMP(created_at) as time_sec,<\/p>\n\n\n\n<p>\u3000value<\/p>\n\n\n\n<p>FROM sensor_data<\/p>\n\n\n\n<p>WHERE $__timeFilter(created_at)<\/p>\n\n\n\n<p>ORDER BY created_at<\/p>\n\n\n\n<p><code><br><\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"660\" src=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-41-1024x660.png\" alt=\"\" class=\"wp-image-7017\" srcset=\"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-41-1024x660.png 1024w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-41-300x193.png 300w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-41-768x495.png 768w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-41.png 1097w, https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/image-41-1024x660.png 856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>\u300cRun Query\u300d\u3092\u62bc\u3059\u3068\u3061\u3083\u3093\u3068\u30c7\u30fc\u30bf\u304c\u8868\u793a\u3055\u308c\u307e\u3057\u305f\u3002\u6700\u521d\u30b0\u30e9\u30d5\u304c\u898b\u305a\u3089\u3044\u3068\u601d\u3046\u306e\u3067range\u3092\u5909\u3048\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u611f\u60f3<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>MySQL\u304b\u3089Grafana\u307e\u3067\u306f\u601d\u3063\u305f\u3088\u308a\u30b9\u30e0\u30fc\u30ba<\/li>\n\n\n\n<li>\u30c6\u30fc\u30d6\u30eb\u69cb\u9020\u3092\u304d\u3061\u3093\u3068\u4f5c\u308c\u3070\u3001\u30b0\u30e9\u30d5\u5316\u304c\u4e00\u77ac\u3067\u3067\u304d\u308b<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u306e\u52d5\u304d\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u8ffd\u3048\u308b\u306e\u304c\u304b\u306a\u308a\u4fbf\u5229<\/li>\n<\/ul>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u30bb\u30f3\u30b5\u30fc\u306e\u4ee3\u308f\u308a\u306b\u30c6\u30b9\u30c8\u30c7\u30fc\u30bf\u3092\u81ea\u52d5\u751f\u6210\u3057\u3066\u3001MySQL\u306b\u4fdd\u5b58\u3057\u3001Grafana\u3067\u53ef\u8996\u5316\u3059\u308b\u6d41\u308c\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f\u3002 MySQL\u306e\u6e96\u5099 \u307e\u305a\u306fMySQL\u5074\u3067\u3001\u30e9\u30f3\u30c0\u30e0\u30c7\u30fc\u30bf\u3092\u5165\u308c\u308b\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002 Node-RED<\/p>\n","protected":false},"author":21,"featured_media":7019,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jin_ogp_image_url":"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/thumbnails-ogp-7006.png","_jin_last_featured_id":7019,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-7006","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-intern"],"jetpack_featured_media_url":"https:\/\/blog.smartlight.co.jp\/wp-content\/uploads\/2025\/07\/thumbnails-featured-7006.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/7006","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7006"}],"version-history":[{"count":2,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/7006\/revisions"}],"predecessor-version":[{"id":7022,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/posts\/7006\/revisions\/7022"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=\/wp\/v2\/media\/7019"}],"wp:attachment":[{"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7006"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7006"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.smartlight.co.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7006"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}