2014年8月13日水曜日

ubuntuにmysqlのDBを作ってそれにandroidからアクセス


色々ごねた。android_studioでやってたらわけわからなくなって
さらにeclipseでandroidのjavaでやってさらにわからなくなって
最終的にeclipseでlinuxのjavaで動作確認
そこからandroid_studioに至った。
基本的にバカだから手間がかかるのだった。
eclipseとかjavaとかmysqlとかいろいろ忘れてた。
androidプログラムも忘れてたし。
もはやSEとは言えないかもしれん。

話に入る前に諸元を確認
ubuntu 14.04
mysql  5.5.38-0ubuntu0.14.04.1

まず最初にJdbcのドライバーのダウンロード
http://dev.mysql.com/downloads/connector/j/
ここに行くとファイルダウンロードできます
Microsoft WindowsとPlatform Independentの二択だが
当然Platform Independentを選ぶ
私の場合は
mysql-connector-java-5.1.32.zip
だった。そして解凍してこのなかにある
mysql-connector-java-5.1.32-bin.jar
をとりだす。(ほかのファイルはいらない)

このドライバーの認識のさせ方は
[eclipse]
①プロジェクトのどこかにコピー
 具体的にいうとパッケージエクスプローラのプロジェクトの中
 のどこか(libsがよいと思う)にドラッグしてファイルを突っ込む
 ことを指す
②ビルドパス設定
 パッケージエクスプローラのプロジェクト名のフォルダで右クリックするとメニューの
 一番最後に"Properties"という項目があるからそれをクリック
 Librariesのところでadd jar からコピーしたファイルを入れる
[android studio]
①プロジェクトのどこかにコピー
 具体的にいうとプロジェクトのビューのプロジェクトの中
 のどこか(libsがよいと思う)にドラッグしてファイルを突っ込む
 ことを指す
②ファイル設定
 プロジェクトのビューのプロジェクトの名前で右クリックするとメニューに
 "Open Module Settings"という項目があるからそれをクリック
  Dependenciesのところで+のFile dependenciesからコピーしたファイルを入れる

次にmysqlサーバだが
①sudo vi /etc/mysql/my.cnf
で50行目
bind-address           = 127.0.0.1
をコメントアウト(#を先頭に追加)して
#bind-address           = 127.0.0.1
にする
あとうるさく言うと
GRANT ALL ON sampledb.* TO pgtop@'%' IDENTIFIED BY '12345';
とかもやったがこれは振り返ると不要だったかも
②DB作成、ユーザー作成
  DBなので当然

最後にandroidのソースの書き方だが
①AndroidManifest.xmlに

 追加
②コードを書く
 重要なことはJDBCアクセスの部分はインターネット経由なのでメインスレッドにかかない
 こと

以下全文