15
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node.js導入->MySQLへ接続

Last updated at Posted at 2016-05-26

Arduinoで温度センサーからとってきたデータをMySQLに登録したいので前準備としてNode.jsを導入します。
Node.jsはサーバーサイドで動作するjavascriptとの事ですがRaspberry piを使ったIoTデバイス制御の記事でよく使われているのでこの機会に習熟しておきたい所です。

#導入手順
私の環境はMacOSX 10.8ですが
Linux環境も基本は同じです。

git が未インストールであればインストール

$ brew install git

Linux環境であればyum等使用してインストール

$ yum -y install git

nvmをインストール

$ git clone https://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh

バージョン確認

$ nvm --version
0.31.1

インストール可能なNode.jsバージョンの確認

$ nvm ls-remote
        v0.1.14
        v0.1.15
        v0.1.16
         ...
        v6.0.0
        v6.1.0
        v6.2.0

表示されたインストール可能なバージョンを選択し
インストール

$ nvm install v6.2.0
Downloading https://nodejs.org/dist/v6.2.0/node-v6.2.0-darwin-x64.tar.xz...
######################################################################## 100.0%
Now using node v6.2.0 (npm v3.8.9)

バージョン確認
表示されればちゃんと入ってます

$ node -v
v6.2.0

version 6.2.0をデフォルトで使用するよう設定

$  nvm alias default v6.2.0
default -> v6.2.0

.bash_profileにコードを追加

if [[-s ~./nvm/nvm.sh]];
then source ~/.nvm/nvm.sh
fi

#MySQL接続

node-mysqlをインストールします。

$ npm install mysql

mysql.jsで下記のコードを保存します。
今回はtestという名前のDBに接続し
test_tableというテーブルから全ての行をSELECTして表示します。


'use strict';

let mysql = require('mysql');
let connection = mysql.createConnection({
  host : 'Mysqlホスト名(ip adderss)',
  user : 'ユーザー名',
  password : 'ユーザーパスワード',
  port : 3306,
  database: 'test'
});

connection.connect();

connection.query('SELECT * from test_table LIMIT 10;', (err, rows, fields) => {
  if (err) throw err;

  console.log('The solution is: ', rows);
});

connection.end();

対象のSQLサーバーで上記のユーザーにアクセス権限付与しておきます。

mysql> GRANT ALL ON *.* TO 'Mysqlユーザー名'@'アクセス元マシンのホスト名(IP address)' IDENTIFIED BY '********';
Query OK, 0 rows affected (0.00 sec)
$ node mysql.js
The solution is:  [ RowDataPacket { id: 1, memo: '1st' },
  RowDataPacket { id: 2, memo: '2nd+' } ]

ちゃんとDBのレコードを表示出来ました。
DBにINSERTすれば気温や光量、土壌データの自動保存が出来そうですね。

参考記事
Node.jsからMySQL接続のメモ(とnode-mysql2)

いまアツいJavaScript!ゼロから始めるNode.js入門〜5分で環境構築編〜

15
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
23

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?