MySQLのテーブルにCSVデータをINSERTする場合はLOCALパラメータを使う

MySQLのテーブルにCSVデータをINSERTする場合はLOCALパラメータを使う

みなさんこんにちは、ALL CONNECTでWEBプログラミングを担当している江端です。
3月からデザイン部に配属されました。
拙い文章で恐縮ですが、最後までお付き合いください。
今回は、MySQLのテーブルにCSVデータをINSERTする場合の注意点を紹介したいと思います。

MySQLのテーブルにCSVデータをINSERTする場合はLOCALパラメータを使え

少し前にCSVファイルのレコードをテーブルにINSERTしようとしたときに躓いたので、備忘録として書こうと思います。
あるシステムからデータをcsv形式で出力して、他のシステムのDBに移行するということは良くあると思います。
例えばPHPでcsvファイルを開いてMySQLにINSERTする場合、MySQLに接続するユーザーにFILE権限が必要になります。
但し、このFILE権限はグローバルレベルの権限なので、このユーザーは全てのデータベースに対してFILE権限をもつことになるので、注意が必要です。
参考URL:https://www.dbonline.jp/mysql/user/index5.html
実際には下記SQL文で指定したユーザーにFILE権限を与えることができます。

自社ではAWSサービスのRDSのMySQLを使って環境を用意することがあります。
その場合、自分で作成するユーザーにはグローバル権限を設定することができません。
そんな時は、LOCALパラメータを使えば、FILE権限がなくてもファイルを読み込むことができるようになります。

 これで、ユーザーの権限を気にすることなくINSERTすることができるようになります。

みなさんも、「何でINSERTできないんだーっ!」と思ったら、LOCALパラメータをつけてみてくださいね。


Previous: ランディングページデザインの3つのポイント! Next: WordPress開発:記事関連データベース基本構造と検索解析

© 2017 ALL CONNECT Inc. All Rights Reserved.