勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

コマンドでMySQLに郵便番号データを入れる

      2014/05/17

練習としてコマンドから郵便番号データを入れた際のメモ。

---------

1:郵便番号データが入っているcsvを取得する

wget http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/ken_all.lzh

とコマンドを打つとダウンロードしてくれる。
ken_all.lzhというファイルがダウンロードされるけど、
解凍するのにlhaというコマンドがいるみたい。
ただ、入っていなかったのでインストールした。

wget http://iij.dl.sourceforge.jp/lha/22231/lha-1.14i-ac20050924p1.tar.gz
tar zxvf lha-1.14i-ac20050924p1.tar.gz
cd lha-1.14i-ac20050924p1
./configure && make && make install

でインストールできた。

---------

2:文字コードをshiftjs -> utf8へ変換

変換する際にnfkというコマンドを使うらしいが
これまた入っていなかった。

yum -y install nkf

でインストールできた。

nkf -w --overwrite ken_all.csv

文字コード変換。

---------

3:テーブルの作成。

mysqlに入って、

CREATE TABLE 適当なデータベース名.zipcode (
PublicCode char(5) NOT NULL,
OldZipCode char(5) NOT NULL,
ZipCode char(7) NOT NULL,
PrefectureKana varchar(10),
CityKana varchar(100),
TownKana varchar(100),
Prefecture varchar(10),
City varchar(200),
Town varchar(200),
TownDivideFlg tinyint(1),
KoazaBanchiFlg tinyint(1),
TyoumeFlg tinyint(1),
HasSomeTownFlg tinyint(1),
UpdateState tinyint(1),
UpdateReson tinyint(1),
PRIMARY KEY (ZipCode)
);

でテーブル作成。

---------

4:csvファイルをインポート

LOAD DATA INFILE './ken_all.csv' IGNORE INTO TABLE zipcode FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"';

を入力するも、

ERROR 13 (HY000): Can't get stat of '/hoge/huga/ken_all.csv' (Errcode: 13)

みたいなエラーが出た。
tmpフォルダ移してから再度試すと大丈夫だった。

---------

■参考サイト
http://d.hatena.ne.jp/kenjiskywalker/20120722/1342957297
http://blog.livedoor.jp/kotani08/archives/50442332.html

phpmyadminと違ってむっちゃ面倒くさかった。

 - MySQL, サーバー

  関連記事

phpMyAdminにIP制限をかける

phpmyadminにIP制限をかけたかった。 sshでログインし、rootへ変 ...

VPSとクラウドの違い

会社でAWSの話になって、そういえば クラウドとVPSって同じじゃないの? 違う ...

MySQLでユニークキーをはる

MySQLでseqとcodeみたいなものをあわせて ユニークキーをはりたかった。 ...

リモートマシンからSSH接続

AのサーバーにSSHで接続して、そのまま BのサーバーにSSHでログインみたいな ...

adminerでMySQLに接続しようとするとエラー

新しく構築したサーバにadminerを入れて接続しようとすると、「mysqlnd ...

WordPressで「データベース接続確立のエラー」

WordPressで設定ファイル(wp-config.php)は触っていないのに ...

apacheで特定期間(日時)のログを抽出する

apacheのaccess_logとerror_logで特定日時内のログのみを確 ...

gzip圧縮とキャッシュをhttpd.confで設定する

今まで共用サーバーで使っていたWordPressをVPSに移した。 せっかくなの ...

MySQLでグループ化したものを条件で絞る(HAVING)

正規化したテーブルがあってその中には idとtagのカラムがある。 でtagの方 ...

テンポラリテーブルで高速化

5000万件ぐらいデータが入っているテーブルから 日本語検索しないといけないケー ...