実行環境(OS)、動機 インストーラではなくZIPをダウンロード(一昨日) 実行環境(コンソール)、データベース初期化 最初のサーバ起動、ログイン、パスワード設定 サーバ終了コマンドと、起動・終了バッチファイル(昨日)  同 ② (明日)
Contents


昨日の補足:サーバを起動するWindowsユーザの種別について

昨日書き忘れた点。Windows 7の管理者権限ユーザ、標準ユーザ、ゲストユーザいずれでも、バッチファイルによるポータブル&アドホックなMySQLサーバ起動ができました。

当然ながらサーバのデータフォルダには、ユーザの書き込み権限が必要。またサーバ起動中はWindowsの一時フォルダ(環境変数TMPTEMPの場所)にも書き込みが発生するので、特にゲストユーザではその場所を適切に作っておく必要がありますが、ともかく
PostgreSQL Portableの時と同様に柔軟なデータベースサーバ利用が可能です。

↓ ゲストユーザで起動したmysqldコンソールと、一時フォルダに書き込まれてる様子。mysqldがデフォルトでWindowsのシステムログに書き込もうとするらしく、ゲストユーザではそれがブロックされエラーが出ますが(オレンジの線)サーバ自体は起動しています。


PostGISshp2pgsql的なインポートツールは付属してない

ここから今日の本題。MySQLの日本語マニュアルにならって「空間データ」と書きます。意味はPostGISのジオメトリと同じ「点・線・面」の地理データです。

データ型や簡単な関数は以前のバージョンからあった一方、MySQL 5.7で関数が増えたり、関数名自体をST_の接頭辞に揃えるなど、何か新しい段階に入った感じはします。そう言えばPostGIS1.21.3の時に関数名をST_でリネームしてました。

で、マニュアルに空間データを入れる項 ↓ はあるものの、LINESTRING(0 0,1 1,2 2)のように簡単な座標群を直接クエリに書く例のみ。実際に空間データベースとして使うなら、最低限シェープファイルのインポートが必要になります。普通のデータでCSVをインポートするとの同様に。


PostGISの場合、付属のshp2pgsqlというコマンドラインツールでいったんシェープファイルをSQLファイルに変換し、それをpsqlに渡すのが基本的な手順。最近はpgAdminプラグインとしてGUIのインポートツールも付いてます。MySQLでは、マニュアルを見る限り、こうした実際のデータインポートに言及がない。


Percona社の解説にならい、シェープファイルをogr2ogrでインポート ①

調べた結果、Percona社という(PostgreSQLで言えばEnterpriseDB社みたいな?)企業のAlexander Rubinという人がブログ等でMySQL空間データの実際の利用例を述べており、下記スライドでogr2ogr(GDALのコマンドラインツール)を使ってました。


これは5.6での例ですが、今回の5.7.8rcでも使えると予想し、同じシェープファイル(米国の郵便番号別の区画、US Zip codes/boundaries)をインポートすることに。元データは下記。アメリカのセンサス局データはFTPでダウンロードできるらしく、日本もこうだといいなぁ。


ZIPのサイズは500
MB、解凍すると800MBあり、最初のテストとしては結構重いけど…。


ZIPを適当な所に解凍したら次にogr2ogrの準備ですが、これがWindowsでは意外に面倒。今回ならったスライドではLinuxのことが少し書かれているだけなので、
GDALの公式サイトからGDAL/OGR BinariesWindowsの項を読み、そこからリンクされているGISInternals support siteのサイトへ行ってGDAL全体のダウンロードページ(Stable Releases)を開くと ↓ 何かいっぱいある(*_*)

とりあえず一番上がWin32だったのでそれをクリックすると ↓ また何か多くのダウンロード一覧が(*_*)

挫けずにリストを見て、一番上がCompiled binariesZIPだったのでダウンロード&解凍し、binフォルダを開くと ↓ またファイルがいっぱいあってogr2ogrはどこ(*_*)

ConEmuを開いてDIRコマンドで下位フォルダを一気に探すと ↓ ようやくありました(´∀`;)


ogr2ogr.exeのあるフォルダに移り、まずバージョン表示させてみると ↓ 単独では動かずGDALのライブラリも必要らしい(*_*)

解凍した中に当然GDALのライブラリが入っていると思うけど、時間がなくなったので今日はここまで。何か消耗しました。MySQLの問題では全然ないとは言え、肝心のデータインポート用コマンドラインツールを外部に委ねると、Windowsでのハードルが急に上がってしまう。やっぱりshp2pgsqlが付属しているPostGISの方がいいなぁと思いつつ、明日に続きます。