カテゴリー別アーカイブ: MySQL

MySQL ON RENTAL SERVER

IoTのサーバ側の準備をしています。
格安のロリポップのロリポプランを使用しています。
http://lolipop.jp/
今回はデータベースを使ってみます。ロリポップは、MySQLの使用が出来ます。

■テーブルの準備
レンタルサーバにテスト用のテーブルを作成しておきます。プランがロリポプランのためMySQLのデータベースは1個しかあリません。Wordpressに使っているデータベースにテーブルを追加しました。
3列のテーブルを作成し、2行レコードを追加しました。
Id、item、 value
1、 command、0
2、 status、 1

MySQLのドライバは、MySQL-pythonを使用しました。ちなみにMySQL公式のmysql-connector-pythonは使用できませんでした。
以下、データベースの読み込みサンプルです。
################################

#!/usr/bin/python2.7
# coding: UTF-8

import cgi
import os
import MySQLdb

def connect():
return MySQLdb.connect(host=”サーバ名”, db=”データベース名”,
user=”ユーザID”, passwd=”パスワード”, charset=”utf8″)

def get(form):
print “Content-Type: text/html; charset=utf-8”
print
print “<html><body>”

# 一覧表示
conn = connect()
curs = conn.cursor()

sql=”SELECT * FROM roomba_ctrl”
curs.execute(sql)
result = curs.fetchall()
for row in result:
print “<h2>”
print “id=”
print row[0]
print ” : item=”
print row[1].encode(‘utf-8’)
print ” : val=”
print row[2]
print “</h2>”

curs.close()
conn.close()
print “</body></html>”

def err():
print “Content-Type: text/html; charset=utf-8”
print
print “<html><body>”
print “<p>ERROR!!</p>”
print “</body></html>”

def main():
form = cgi.FieldStorage()
if os.getenv(“REQUEST_METHOD”) != “GET”:
err()
else:
get(form)

if __name__ == “__main__”:
main()

################################

以下、サンプルURLです。
http://spineedge.com/CGI/dbget.py

このテーブルにXBee WiFiでDBに読み書きしたいので
spineedge.comのIPアドレスを調べます。pingを投げて確認します。
203.189.109.118
と判明しました。
XCTUで設定&テストを行いました。

テーブルからのGETを行いました。
STATUSが読み出せました。
get

テーブルへのPOSTを行います。
COMMANDが書き込めました。
post

データベースからテーブルを読み出したところCOMMANDのvalに3が設定されているのが確認出来ました。
dbase

これでXBee WiFiでインターネット上のサーバのデータベースの読み書きが出きるようになりました。マイコンを使ったIoTに一歩近づきました。

MySQL on Beagleboard-xM

Jpeg
まずMySQL のインストールします。
sudo apt-get install mysql-server
これだけです。

MySQL の動作確認します。
sudo mysql
・・・・・管理プロンプトに入ります。
mysql> show databases;
mysql> quit
Jpeg

MySQL の初期設定
root ユーザーのパスワードが設定されていないので新たに設定します。
mysqladmin -u root password **********
パスワード設定後は、-pオプションをつけてログインすることになります。
~$ sudo mysql -u root -p

起動設定を行っておきます。
sudo update-rc.d mysql defaults

次にキャラクターセットの変更をします。
MySQL側のキャラクタセットをutf8に変更するため、/etc/mysql/my.cnf を編集します。
my.cnf において[mysqld]、[mysql]の各セクション中に文字セットとしてutf8を指定する以下の記述を追加します。

/etc/mysql/my.cnf
[mysqld]
character-set-server = utf8
skip-character-set-client-handshake
[mysql]
default-character-set = utf8

~$ sudo /etc/init.d/mysql restart
MySQLの再起動をし、設定の確認を行います。
~$ sudo mysql -u root -p
mysql> show variables like ‘char%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.00 sec)

データベースの作成を行います。
CREATE DATABASE testdata1 DEFAULT CHARACTER SET utf8;
testdata1と言うデータベースを作成します。

mysql> USE testdata1;
使用するデータベースを指定します。

mysql> CREATE TABLE table1 ( id int, name varchar(100) );
table1というテーブルを作成します。項目(フィールド)ごとに整数値か文字列かという指定をする必要があり、この場合は”idという整数値”と”nameという文字列”の2つの値から成るテーブルを作成しています。

mysql> SHOW TABLES;
テーブルのリストを表示します。新たに、table1というテーブルが加わっているはずです。

USE testdata1;
の実行前なら、SHOW TABLES FROM testdata1;という形でデータベース名を指定する必要があります。

レコードの追加をします。
mysql> insert into table1 (id, name) values(1,’John’);
table1テーブルへデータ(名前)を登録
レコードの追加の確認
mysql> select * from table1;
テーブルの一覧が表示されます。
Screenshot_from_2015-06-20 21:17:56

ボードの下にSSDを配置しています。
Jpeg
OSがDebian、NAS機能とRDB機能があるサーバとなっています。

© 2014 Spineedge Corporation.