勉強したことのメモ

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, サーバー

  関連記事

MySQLで大文字小文字

半角英数字のみのフォームで入力した値を検索した際、 データに差異が発生。 [Aa ...

MySQLでJOINの高速化

JOINで無茶苦茶悩んだのでメモ。やりたかった事は、MySQLで テーブルAには ...

phpMyAdminにIP制限をかける

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

CentOS6でSFTP接続する

VSPでFTP接続からSFTP接続に移行したかった。以下に方法をメモ。 &nbs ...

VPSをもう1台導入した際のメモ

DTIのVPSを導入した。 目的としてはMySQLのレプリケーションとか、 複数 ...

さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える

さくらVPSでLAMP環境とphpMyAdminとFTP接続環境を整える ■環境 ...

PHPでコマンドを実行して画像を加工

PHPで画像をリサイズしたりサムネイルを作ろうとすると、 ソースが長くなって面倒 ...

logrotate

先輩とサーバー会社とのやり取りで、 「負荷の少ない時間帯にサーバー状況がホニャラ ...

MySQLでIPアドレスを数値として入れると変になる

MySQLでIPアドレスをINET_ATON関数を用いてINT型に変換し格納する ...

MySQLのエラーログ取得関数

場合によってログに出力させたい値が異なる場合があったのでメモ。 function ...