質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

0回答

982閲覧

【EC2】Mysql8においてCSVファイルのデータインポートができない

yastinbieber

総合スコア49

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2021/05/15 12:50

前提・実現したいこと

現在Railsにてアプリケーションを作成しており、
EC2を用いてデプロイまで完了しております。

そこで、CSVファイルを用いてデータのインポートを試みているのですが、
エラーにより進めずにおります。

なお本番環境において、データベースはMysql8を使用しております。

どなたか要因お分かりの方アドバイスをいただけますと幸いです。

該当のソースコード

[ec2-user@ip-172-31-36-245 git_toreka]$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 93 Server version: 8.0.22 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> SET GLOBAL local_infile=on; Query OK, 0 rows affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | git_toreka | | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> use git_toreka; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> show tables; +----------------------------+ | Tables_in_git_toreka | +----------------------------+ | active_storage_attachments | | active_storage_blobs | | advicediaries | | advicemenus | | ar_internal_metadata | | cards | | fooddates | | fooddiaries | | howtovideos | | idealweights | | inquiries | | schema_migrations | | useradvices | | users | | weightchanges | | withdrawals | | workoutdates | | workoutdiaries | | workoutstocks | +----------------------------+ 19 rows in set (0.00 sec) mysql> SHOW columns FROM advicemenus; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | id | bigint | NO | PRI | NULL | auto_increment | | menu | varchar(255) | YES | | NULL | | | minimam_reps | int | YES | | NULL | | | max_reps | int | YES | | NULL | | | sets | int | YES | | NULL | | | group | varchar(255) | YES | | NULL | | | created_at | datetime | NO | | NULL | | | updated_at | datetime | NO | | NULL | | | url | text | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+ 9 rows in set (0.00 sec) mysql> load data local infile "/home/ec2-user/environment/toreka/advicemenudb.csv" into table advicemenus fields terminated by ','; ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

試したこと

こちらのサイトを参考にさせていただきながらMysql8ならではの設定をいくつかしました。

①サーバー側の「--local_infile」を設定する。

mysql> select @@local_infile; +----------------+ | @@local_infile | +----------------+ | 0 | +----------------+ 1 row in set (0.00 sec) mysql> set persist local_infile=1; Query OK, 0 rows affected (0.00 sec) mysql> select @@local_infile; +----------------+ | @@local_infile | +----------------+ | 1 | +----------------+ 1 row in set (0.00 sec)

LOAD DATA LOCAL INFILEを有効にする

Mysql8から上記がデフォルトで無効となってるとのことで有効にしました。

mysql> show global variables like 'local_infile'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | local_infile | ON | +---------------+-------+ 1 row in set (0.04 sec)

これら試してみましたが、依然下記のエラー分は出ております。
ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

ちなみに、本番環境におけるMysqlのバージョンは8.0.22で、
開発環境におけるバージョンは5.5.62となっております。

開発環境では問題なくCSVファイルからインポートができています。

なおインポートするファイルは、
"/home/ec2-user/environment/toreka/advicemenudb.csv"においてあります。

宜しくお願いします。

補足情報(FW/ツールのバージョンなど)

Rails 5.2.5
ruby 2.5.1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2021/05/15 20:33

CSV云々以前に本番環境と開発環境のデータベースのバージョンは揃えましょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問