php - 既存 - mysql grant file



データのinfileを読み込むと、アクセス拒否のアクセス権のエラーが表示されます。 私のデータベースのテーブルにテキストファイルをインポートするにはどうすればいいですか? (3)

私は、で区切られたデータを含むテキストファイルをインポートしたい。 ほとんどの人が使っているいくつかの情報源、「LOAD DATA INFILE」を読みました。 だから私はそれも私のために働くだろうと思った。

私はそうすると、私はこのアクセス許可のエラーを取得します。 私はこのコマンドを実行し、ここで私が得たものです:

LOAD DATA INFILE '/public_html/nyccrash.txt' INTO TABLE nyccrash; 

しかし、それは私にこのエラーを与える:

ERROR 1045(28000): Access denied for user 'username'@'%' (using password: YES)

私は他のスレッドを読みましたが、私がしなければならなかったのは、完全なファイルパスを含んでいたのですが、それでも動作しませんでした。

データベース内のテーブルにテキストファイルをインポートする別の方法はありますか? SQLまたはPHPの使用。

編集:

私はこのコマンドを使用することができます:

<?php
$row = 1;
$handle = fopen("nyccrash.txt", "r");
echo("<table>");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    echo("<tr>\r\n");
    foreach ($data as $index=>$val) {
        echo("\t<td>$val</td>\r\n");
    }
    echo("</tr>\r\n");
}
echo("</table>");
fclose($handle);

?>

それで私はデータを読んでテーブルを作り、それを印刷することができます。 上記のデータを収集するためにINSERT INTOテーブルsqlコマンドを使用することもできますが、テーブルに値を挿入する方法がわかりません。 つまり、挿入する値をループします。 txtファイルの私のデータには、含まれているものの属性やヘッダーが含まれていません。 だから...私はデータを正しい列に並べ替える方法について少し混乱しています。

https://code.i-harness.com


LOAD DATA LOCAL INFILEを介してデータをLOAD DATA LOCAL INFILEするには、次の2つが必要です。

  1. FILE特権GRANT FILE ON *.* TO 'username'@'%';
  2. my.cnf local_infileを1に設定します。 mysqlを再起動しないようにするには、スーパーユーザーにSET GLOBAL local_infile=1;実行させますSET GLOBAL local_infile=1;

警告:これらの両方がセキュリティ違反とみなされます。


これを何度か実行する場合は、Excelにデータをインポートしてsqlクエリをマウントし、sql行をマウントするためにconcatを使用し、クライアントにコピー/ペーストして実行します。 それは多くのテーブルではあまり役に立ちません。 もしそうなら、PHPを使ってcsvファイルをアップロードし、テーブルに移入するのは難しいことではありません。


私は私のtxtファイルの許可を与えたことを確認しました: chmod 711

次に、 LOAD DATA LOCAL INFILE 'nyccrash.txt' INTO TABLE nyccrash FIELDS TERMINATED BY ',';を使用しましたLOAD DATA LOCAL INFILE 'nyccrash.txt' INTO TABLE nyccrash FIELDS TERMINATED BY ','; それは働いた。





mysqli