こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

CSVファイル「Test.csv」(文字コードWindows-31J(

CSVファイル「Test.csv」(文字コードWindows-31J(CP932))を、
CentOS(Linux)上の/var/lib/mysqlディレクトリ上(MySQLデフォルトのデータディレクトリ)へ、
アップロードしてから、
以下のJavaプログラム(エラー処理内容だけは省略していますが・・・)
 ↓
final Runtime rt = Runtime.getRuntime();
final Process pr = rt.exec("chown mysql:mysql" + " "
+ "/var/lib/mysql/Test.csv");
try {
pr.waitFor();
final int intRet = pr.exitValue();
if (intRet != 0) {
return;
}
} catch (final Exception ex2) {
return;
}

を実行して、
アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、
元々の「root」から、「mysql」に変更させて、
その後、
MySQLコマンドの「LOAD DATA INFILE」を実行すると、
なぜか、
以下のエラーが発生します。
 ↓
java.sql.SQLException: Access denied for user 'SYSASA'@'localhost' (using password: YES)

なお、別のやり方として以下のテストも試してみました。
 ↓
上記のJavaプログラムを実行せずに、
アップロード後のファイルを直接、
CentOS上から手作業(プロパティ)で、
アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、
元々の「root」から、「mysql」に変更させてから、
その後、
MySQLコマンドの「LOAD DATA INFILE」を実行すると、
問題無く、インポート出来ています。

そこで、
ご質問内容なのですが、
Javaプログラムを利用しているか、していないか
だけの違いで、
実施しているのですが、
なぜか、上記致しましたJavaプログラムで、
アップロード後の「Test.csv」ファイルの「所有者」、および「グループ」を、
元々の「root」から、「mysql」に変更させてから、
MySQLコマンドの「LOAD DATA INFILE」を実行すると、
上記のエラーになります。

何が問題なのか?
もしお気づきの点などございましたら、
ぜひ教えてください。

お世話になります。
以上、宜しくお願い致します。

投稿日時 - 2010-10-20 20:57:28

QNo.6263808

すぐに回答ほしいです

質問者が選んだベストアンサー

ファイルをインポートするには、FILE権限が必要です。
phpMyAdminツール等で、
mysqlデータベース内、userテーブル内の、
「File_Priv」フィールドの値を、Nから→Yに変更して保存してから、
MySQLサービスをリブートすればよいです。
(所有者とグループは、rootのままでOKです)

投稿日時 - 2010-10-22 12:05:14

お礼

うまくインポート出来ました。
ありがとうございました。

投稿日時 - 2010-10-22 12:06:57

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問