• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MYSQLのDBに大容量のCSVをUPしたいです。)

MYSQLのDBに大容量のCSVをUPする方法は?

tomajuの回答

  • tomaju
  • ベストアンサー率76% (84/110)
回答No.4

> 「ERROR 1045 (28000) at line 2513: Access denied for user 'ユーザー名'@'%' (using password: YES)」というエラーが発生します。 ユーザーにFILE権限がないと LOAD DATA INFILE に失敗するそうです。 grant file on *.* to ユーザー名@localhost; で権限を与えるとよさそうです。 LOAD DATA INFILEにはFILE権限 http://d.hatena.ne.jp/kaishitaeiichi/20101114/1289751855

yanagihk
質問者

お礼

ご回答ありがとうございます。 test1.txtの中のLOAD DATA文の直前に「grant file on *.* to ユーザー名@localhost;」を 入れましたが、やはり「Access denied for user 'angelito'@'%' (using password: YES)」というエラーが出てしまいます。 MYSQLにログインしてからgrant文を実行すればよいのかと思い、 「mysql -u ユーザー名 -p」を実行してみましたが、 「Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)」が出てしまいます。 この解決法を調べるとmy.cnfをいじらなければいけない様な感じがありますが、レンタルサーバーなのでいじれないように思えます。

関連するQ&A

  • インターフェースからCSVを取り込んで、MySQLにインポート

    インターフェースからCSVを取り込んで、MySQLにインポート ブラウザのインターフェースからCSVファイルを選択して、MySQLにインポートするようにしたいのですが、 (1)ファイルのアップロード (2)サーバー上にある(アップロードされた)CSVファイルをMySQLにインポート という手順で処理するほかないでしょうか? ローカルのCSVファイルを直接MySQLにインポートするような画期的な方法(ライブラリなど)あったらいいなと思い質問します。 PHPのバージョン:5.2 MySQLのバージョン:5.1 です。 まだ基本設計の段階なので、具体的な質問になっておらず申し訳ありませんが、 よろしくお願いします。

    • 締切済み
    • PHP
  • 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」を実行すると、 上記のエラーになります。 何が問題なのか? もしお気づきの点などございましたら、 ぜひ教えてください。 お世話になります。 以上、宜しくお願い致します。

    • ベストアンサー
    • Java
  • 郵便番号データのMYSQLへのインポートについて

    郵便番号データのMYSQLへのインポートについて質問をさせていただきます。よろしくお願いします。 郵便番号のデータベースを日本郵政が配布しているCSVファイルを利用して作成しようと思い、下記の手順でMYSQLにインポートしようと試みましたが、失敗してしまいます。 1.日本郵政のHPからダウンロードしてきたファイルをそのままではサイズが大きすぎてインポートできないためken1.txt(1340KB)、ken2.txt(1339KB)、ken3.txt(1386KB)、ken4.txt(1444KB)に分割。 2.サイトの文字コードがUTF-8を使用しているため、上記のファイルの文字コードをUTF-8に変換。 3.PHPMyAdminを使用し、yubinbangoテーブル(フィールドは以下の4つ bango、ken、shi、machi 上記ファイルについてもフィールドは4つにしてあります。)を作成。 4.PHPMyAdminでyubinbangoテーブルを選び、『テーブルにテキストファイルを追加する』のリンクをクリック。 5.表示された画面で テキストファイルの場所→上記分割したファイル ファイルでテーブルを置き換える→チェックボックスのチェックなし フィールド区切り記号→, フィールド囲み記号→" オプションのチェックボックスのチェックなし フィールドのエスケープ記号→\ 行の終端記号→\r\n 列(カラム)名→『bango,ken,shi,machi』 漢字コード変換→non LOAD 手段→DATA LOCAL として、実行ボタンを押したところ、データは追加されたと出るのですが、実際にデータベースの中を見てみると『bango』の1つ目のデータのみ文字化けし、以降全てのデータで『ken,shi,machi』がNULLとなってしまっています。 どのようにすれば、データを正常にインポートできるでしょうか? どうかご教授のほどよろしくお願いいたします。

  • CentOS(Linux)上の/var/lib/mysqlディレクトリ

    CentOS(Linux)上の/var/lib/mysqlディレクトリ上(MySQLデフォルトのデータディレクトリ)へ、 CSVファイル「Test.csv」(文字コードWindows-31J(CP932))を、 アップロードしてから、 以下の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」を実行すると、 上記のエラーになります。 何がエラーの原因なのでしょうか? もしお気づきの点などございましたら、 ぜひ教えてください。 お世話になります。 以上、宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • CSVファイルをMYSQLにインポート

    先日からMYSQL+PHPの勉強をはじめました。 データベース構築の際、以前作成したCSVファイルをMYSQLのテーブルとして 利用したいと考えております。 そこで、MYSQLコマンドより、 LOAD DATA LOCAL INFILE 'ファイル名.csv' INTO TABLE テーブル名 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'; Query OK, 0 rows affected (0.04 sec) Records: 102 Deleted: 0 Skipped: 102 Warnings: 0 とCSVファイル自体が悪いのかSQL文に問題がるのかインポートがうまくいきません。。 ちなみにCSVは  0,2011/6/2 0:00,80.94,81.32,80.55,80.92 0,2011/5/25 0:00,81.94,82.17,81.8,81.95 0,2011/5/23 0:00,81.77,82.04,81.32,81.99 環境はphpdevで一括でインストールした phpadmin: バージョン2.3.2 MYSQL: MySQL4 apache: 1.3.27 初心者で基本的な質問かもしれないですがどうかご教授お願いします。

    • ベストアンサー
    • MySQL
  • csvからmySQLのデータベース作成

    カンマ区切りのcsvファイルを読み込んでMySQLのデータベースを作成したくて、下記のプログラムを作成しました。 しかし、正常に動作しません。どこに問題があるのでしょうか。 よろしくお願いします。 <?php $file = '"test.txt"'; //------------------------------------------------------------- //データベースアクセス //------------------------------------------------------------- $url = 'test-test.com'; // MySQL hostname $user = 'test_user'; // Your MySQL user name. $pass = 'password'; // Your MySQL password. $db = 'test_db'; // MySQLへ接続する $link = mysql_connect($url,$user,$pass); if ( $link == FALSE ) { error(__line__); } // データベースを選択する $sdb = mysql_select_db($db,$link); if ( $sdb == FALSE ) { error(__line__); } mysql_query("SET NAMES utf8"); //CSVデータの取り込み $sql = "LOAD DATA LOCAL INFILE '$file' INTO TABLE test fields terminated by"; $sql .= " LINES "; $sql .= " TERMINATED BY '\r\n' "; $sql .= " IGNORE 1 LINES"; $result = mysql_query($sql, $conn); if (!$result) { $message = 'Invalid query: ' . mysql_error() . "\n"; $message .= 'Whole query: ' . $sql; die($message); } //------------------------------------------------------------- // エラーメッセージ表示 //------------------------------------------------------------- function error($line) { echo "error code:" . $line; exit; } ?> ---------- .CSVファイル ---------- 日付,内容,備考 0901,value,etc 0902,value2,etc2

    • ベストアンサー
    • PHP
  • MySQLにCSVファイルを入れる方法

    MySQLでデータベースを構築しています。CSVファイルにデータを構築していますがMySQLにインポートする方法が解りません。どうかおしえていただけませんでしょうか?

  • DB2でのcsvファイルのインポート

    今、IBM DB2 for Windowsを扱っているのですが、 csvファイルのインポートが良くわかりません。 csv形式で保存されているファイルがあるのですが、 そのファイルを元にテーブルを作りたいんです。 SQL以外で、何か簡単にできる方法は無いのでしょうか? また、やり方を解説しているページがあれば教えてください。 お願いします。

  • MySQLのLOAD文を使ってCSVファイルをデータベースにインポートしたい

    MySQLのLOAD文を使ってCSVファイルの内容をデータベースにインポートしたいと思っています。 そこで、下記のような内容のCSVファイルを作成しました ファイル名:word_list1.csv ↓ファイルの内容↓ 1,apple 2,egg 3,music 4,movie 5,baseball 作成した word_list1.csv の保存場所は C:/hole_problem/word_list1.csv です また、word_list1.csv の内容をインポートするデータベース側のテーブルは下記のコマンドにより定義されています CREATE TABLE word_list( id INT AUTO_INCREMENT, name VARCHAR(50) NOT NULL, CONSTRAINT id_pri PRIMARY KEY (id) ) ENGINE=InnoDB; CSVファイル word_list1.csv とデータベース側のテーブル word_list の準備が整ったところで下記のコマンドを実行しました LOAD DATA LOCAL INFILE "C:/hole_problem/word_list1.csv" INTO TABLE word_list FIELDS TERMINATED BY ','; コマンドはエラーなどなく正常に実行されましたが、実行後にデータベースを参照すると下記のようになっています id name 2 egg 3 music 4 movie 5 baseball 35 apple ここで質問なのですが、なぜ、CSVファイルでの順番とインポート後のデータベースでの順番が異なってきてしまうのでしょうか? 教えて頂けると助かります。 また、どのようにすれば順番が変わることなくCSVファイルの内容をデータベースにインポートできるのでしょうか?

    • ベストアンサー
    • MySQL
  • PHPからMySQL・異なるDBにコピー

    PHPからMySQL・異なるDBに接続し同じ構造のテーブルのデータをコピーすることは可能ですか? 以下を実行するとクエリが実行されず「コピーできません」が表示されてしまいます。 どのようにすればコピーできるか教えてください。 $connect1 = mysql_connect("localhost", "user1", "pass1") ; mysql_select_db("db1", $connect1); //db1内にtable1 $connect2 = mysql_connect("localhost", "user2", "pass2") ; mysql_select_db("db2", $connect2); //db2.内にtable2 $sql = "INSERT INTO `db1` . `table1` SELECT * FROM `db2` .`table2`;"; $result = mysql_query($sql, $connect1)or die("コピーできません"); //$result内「$connect1」でも「$connect2」結果は同じです。 //table1とtable2の構造は同じです。

    • ベストアンサー
    • PHP