をやってみます。
ファイルの準備
まずは適当なデータをcsvで用意する。郵便番号データを使います。
Linuxであれば/tmp/以下のディレクトリに入れておくのが適切。
ただしここで気をつけなければいけないのは、ファイルとディレクトリのパーミッションだ。Linuxは、この辺りが厳密なので注意が必要だ。フルパスで指定するファイルの上位ディレクトリ全てのパーミッション設定を変更しておく必要がある。。。。と。
なので、問題が無ければ、全ユーザに対してアクセス権を開放してしまう。これで問題なくインポートができるようになる。
すなわち、
# chmod 777 /tmp
MySQLへインポート
まずは、インポートするデータにあわせてテーブルを作っていく。
ああ、やっぱテーブルはあらかじめ作る必要あるのね。。そりゃそうだ。。
では、まじめに作成。。。
# mysql -p もしくは、、、、、
# mysql -u root -p
で次に設定したpasswdを入力
#y*\h**h/r*2*16/L0+*5(一応、ガード!)
指定したユーザー名とパスワードでMySQLサーバへ接続が成功すれば、下記のような画面となりコマンドまたはSQL文の入力待ちとなります。
データベースの作成
データベースを作成します。CREATE DATABASE文を使います。基本書式は次の通りです。
mysql>create database yubin20160807;
データベースの確認は、
mysql>show databases;
で、databaseを選択して、、
# use yubin20160807;
で、次は、テーブル作成
CREATE TABLE 2016_yubin_num(
yubin_num text,
kana_ken text,
kana_siku text,
kana_juusyo text,
kanji_ken text,
kanji_siku text,
kanji_juusyo text
);
できたかな????
一応、DESCRIBEコマンドで確認する。
mysql> describe 2016_yubin_num;
OK、テーブルもできたようだ!
では、肝心のcsvファイルのインポートをLOAD DATAを使って行う。ファイル名を指定している””の中は、フルパスを使ってファイルを指定してもいい。
で、CSVファイルの置き場所だけど、、、インストールしたmysqlは「/var/lib/mysql」で動いているよう。。。なので、この1つ上の../tmpに行ってそれをとってきてもらうには、、、
Linuxで「/var/lib/mysql」を作成し、tmpディレクトリの中にファイルを置く、、、、私の場合、、「../tmp/KEN_ALL_20160807.CSV」、、、かな。。。で、
mysql> LOAD DATA INFILE “../tmp/KEN_ALL_20160807.CSV”
-> INTO TABLE 2016_yubin_num FIELDS TERMINATED BY “,”
-> LINES TERMINATED BY “\r\n”;
結果、、、
読めたかな?????
mysql> select * from 2016_yubin_num;
うーーーん。読めたけど、、、文字化け。。。
ここで、文字化けが起きているのならば、ファイルの文字コードとMySQLの文字コードを確認して同じものを指定する。csvファイルの文字コード変換は、テキストエディターの”サクラエディタ”を使用した。
で、
UTF-8にしないといけないので、変換して再度転送!!!
もう1回ロードします。。。。。。
mysql> LOAD DATA INFILE “../tmp/KEN_ALL_20160807.CSV”
-> INTO TABLE 2016_yubin_num FIELDS TERMINATED BY “,”
-> LINES TERMINATED BY “\r\n”;
入ったみたいなので、確認してみるか。。。。。
mysql> SELECT * FROM 2016_yubin_num WHERE yubin_num=‘1210823’;
OK!!みたいね!!!!!!!
やったー