MySQLの巨大なファイルをインポートする

2012/12/20 | MySQL

phpMyAdminでMySQLデータをエクスポートする場合、ダンプファイルの容量を心配する必要はあまりない。数百MBとかでも特に考えることもなくダウンロードできていた。しかし、問題はインポート。phpMyAdminではファイルをアップロードしてインポートする形式になるのだが、PHPのアップロード制限があったり、Apacheのアップロード制限があったり、といろいろ制約が多い。

サーバにデータを転送しておいてコマンドラインからインポート、という手が使えればもちろん問題ないのだけれど、安価なレンタルサーバではシェルログインできないことがほとんどだ。

そんな時に便利なのがBigDumpだ。このスクリプトはPHP で書かれていて、このファイルの必要箇所を書き換えてサーバにアップロードし、データもファイルと同じ階層にアップロード、さらにスクリプトへブラウザからアクセスして指示に従えば、データ量が多くても(数百MB程度でも)問題なくインポートすることができた。

実際どのくらいの容量を想定すれば良いのか、という問題はさておき、個人商店のようなプログラマが小・中規模のサイトで1GBを超えるデータを扱うような可能性は滅多にないので、便利に使えるツールだと思う。

PostGISをyumでインストール

2012/07/23 | PostgreSQL

以前、PostGISをyumでインストールする方法を書いた。

そしてCentOSでPostGISが使えるようになった

久々にPostGISをインストールすることになったので、チャレンジしようと思ったけどリンク先がなくなっていた。それに今度はCentOS6系になるので、別のやり方でインストールした。

PostGIS自体はRedHatやCentOSではパッケージが提供されていないが、Fedoraプロジェクトではパッケージが用意されている。今回はFedoraプロジェクトから提供されているRHEL用のリポジトリEPELを使ってインストールすることにした。

まず最初にEPELを使えるようにする。手順としてはキーを取得してインポートしておき、yumのリポジトリにEPELを追加することになる。

wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
rpm –import RPM-GPG-KEY-EPEL-6
rm -f RPM-GPG-KEY-EPEL-6
vi /etc/yum.repos.d/epel.repo

最終行でファイルを新規作成する。記述内容は以下のとおり。

[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/
gpgcheck=1
enabled=0

例によってenabled=0に設定しておき、必要に応じてオプション指定してこのリポジトリを使うことにする。

ここからは簡単で、yumでPostGISをインストールすることができる。

yum –enablerepo=epel install postgis

依存関係からpostgis以外にもたくさんインストールしなければならないようだが、しかたがないので全てインストールする。

これだけで完了。簡単だった。あと、本当に使えるようになっているのかどうかは確認しなくてはならないけれど。

SQLiteManagerの文字コードは今もEUCだった

2012/07/07 | SQLite

久々にSQLiteManagerをダウンロードしてセットアップしたが、やっぱり昔と同じで日本語はEUCのままだった。バージョンが上がっているんじゃないかな、ということで新たにUTF-8への対応方法を調べてみた。作業した内容は./lang/japanese.inc.php。

ファイルをEUCとして開き、冒頭の10行目あたりの文字コードに関する設定を以下のように変更する。

$charset = ‘utf-8′;
$langSuffix = ‘ja-utf-8′;

そしてファイルをUTF-8にして保存する。これで終わり。 せっかく貴重な環境なのだから、誰か連絡してあげればいいのに(自分で連絡したほうが早い・・・か)。

MySQL Workbench

2012/06/06 | MySQL

ある作業でカラムの型としてDECIMAL型を選んだ。型の設定でDECIMAL(7,4)とすべきところをDECIMAL(3,4)としてしまっていたけどエラーにならなかった。当然そのままphpMyAdminに流すとエラー。

厳密なチェックがないっていうのは結構ありそうな感じかな。

MySQL WorkbenchからphpMyAdminでエラー

2012/06/03 | MySQL

MySQLを使うとき、データベースの設計はMySQL Workbenchを使用している。非常に優秀なツールで、テーブル設計はもちろんER図が描けて、そこで設定したリレーションもデータベース設計に直接反映される。まだ使い始めてそれほど立っていないのだけれど、作成した情報からSQL文を吐き出して、それをphpMyAdminから投入すればデータベースが一発で作成されるので、とても便利。

しかし今日、初めて面倒が発生した。DB設計したファイルを更新するためにMySQL Workbenchでオープンし、いつものようにカラムとテーブルの整理をしてリレーションを貼り直し、SQL出力。そして出力したSQLを使ってphpMyAdminに流し込んだのだが、これがエラーとなり途中で止まってしまう。今までこんなことなかったのに。

今までは一度もそんなことなかったし、構造を変更したテーブルで問題が発生しているようなので、明らかに作業した内容に問題がありそう・・・でもわからない。で、しばしMySQL Workbenchの画面を眺めてみる・・・。

わかりました。リレーションの貼り元のカラムと、貼り先のカラムで、どちらも型はintegerだけれど、一方はunsigned属性が付加されているが、もう片方では付加されていない。「あっ」、思いこれを修正して吐き出したSQL文を使えば、今までどおり一発でSQL文が通るようになった。

いや、まぁ自分のミスではあるのだが、そういう一般に発生しやすいミスを事前に見つけて警告してくれるツールであった欲しかったなーと思った。とはいえ便利なツールなので、今後も使い続ける予定。さらなるバージョンアップに期待する。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net