おはようございます。じぇいかわさきです。
やっとデータベースのテーブルを作り直して、そえではと思い今まで作ったデータをインポートしようと挑戦しました。
しかし、新たな問題が発生!テーブルのアクセス権が無いとのエラーとなり先に進まず。

データをインポートしてみる
DHT11を使用して採取した温湿度データは、CSVファイルとして保存されている。
このデータを今回作ったデータベースのテーブルにインポートしてあげればよいことになる。
今まで、過去の記憶をよみがえらせてCSVファイルのデータをテーブルに読み込ませるのは、INSERT文を使うのだとずっと思っていた。
しかし、調べていくとMariaDBではINSERT文ではなく、LOAD文を使用してデータをインポートするみたいだ。
ローカルにファイルされているデータを指定し、インポートをしてみる。
load local data infile ‘/home/pi/rasptemp/temp_humd.csv’ into table ‘temphumd’ fields terminated by ‘,’ optionally enclosed by ‘”‘ ;
最初は’temphumd’の右側にエラーが有ると表示された。

チェックしてみると、MariaDBの最新版ではテーブルの指定に”で囲うことはしなくて良いらしい。
load local data infile ‘/home/pi/rasptemp/temp_humd.csv’ into table temphumd fields terminated by ‘,’ optionally enclosed by ‘”‘ ;
上記に書き換えて、再度実行させてみると、今度は別のエラーになった。
今度のエラーはERROR 1045と表示され、テーブルのアクセス権に関わる問題みたいだ。
raspと言うユーザーではなくrootだったので、もう一度raspと言うユーザーでログインしなおして、同じことをやってみたが結果は同じだった。
ERROR 1045とは
いきなりエラーコード1045と表示されても、実際はどんな事なのかさっぱり分からない。
とりあえずはAccess deniedなので、アクセスは拒否されたと言うことなんだろうと思う。
つまり、今回作ったテーブルに対して、データを入れようとしてアクセスると、アクセス権が無いと拒否されてしまうと言うことだ。
エラー内容をもう少し詳しくチェックしていこうと、ネットを調べてみた。
■エラーコード:1045
■SQLSTATE:28000
■エラーメッセージ例:
Access denied for user ‘ユーザ名’@’ホスト名’ (using password: [YES/NO])
■エラーの原因:
(YESの場合)権限などのユーザ設定が間違えている。
(NOの場合)ログイン時にパスワードを入力していない、または、入力したパスワードが間違えている。
■エラーへの対処法:
(YESの場合)権限の設定が問題ないか確認する。それでもできない場合は、ユーザを一度削除して再度作成してみる。
(NOの場合)ログイン時にオプション「-p」を付け、パスワードを入力する。その上でエラーになる場合、パスワードが間違えていないか確認する。
今回の対象は太字にした部分に当たるよね。
一番簡単なのは、一旦raspと言うユーザーを削除して、もう一度設定するのが良いみたいだ。
[ads]
ここでもつまずいた。
drop user rasp ;
上記コマンドを使用して、ユーザーを一旦削除する。ここまでは問題なかった。
しかし、再度ユーザーを作成しようと下記コマンドを入れてもエラーとなってしまう。
create user rasp@’%’ IDENTIFIED by ‘rasp’;
記述方法を変えて、以下でも試したみた。
create user ‘rasp’@’%’ IDENTIFIED by ‘rasp’;
これでもエラー。
結局、マニュアルを読んでいくと一度作ったことが有るユーザーに対しては、以下のコマンドになるようだ。
create user or replace user ‘rasp’@’%’ identified by ‘rasp’ ;

これでユーザーが再構築できたので、もう一度権限を以下のコマンドで付加した。
grant all privilages on iotada.* to ‘raso’@’%’;
そして、反映されるようにおまじないの下記コマンドを実行
flush privileges;
これでOKになったはず。
同じようにデータの流し込みのコマンドを実行すると同じで変わらず!
まとめ
結局のところ、ユーザーの設定が悪いような気がするのだが、何が悪いのかが分からない。
ついに手詰まり状態に陥ってしまった。
まさかこんなところで躓いてしまうとは。今まで少し触ったことが有るMySQLと互換と言いながらも、かなり変わっているような気がするMariaDB。
もう少ししっかりと、内容を確認してから、もしくは単独である程度使用できるようになってからでないと、難しいのかもしれない。
ものすごく安易に考えていた自分がちょっと情けなくなった。MySQLを少しだけかじったことが有る事が、逆にあだになったのかもしれない。
と言う事で、ちょっとMariaDBについて調べたりする期間が必要なような気がする。
本企画は、ちょっと中断してしまうかもしれない状況に追い込まれた。
残念だが仕方がないかもね。
