MySQL 8.0 からはローカルファイルのデータ読み取りはデフォルトだと禁止されてるようです。
テスト用の DB 立てようとしたら詰まったのでやり方を記しておきます。
環境
- mysql
- Ver 8.0.22 for Win64 on x86_64 (MySQL Community Server - GPL)
- pc
- Windows 10 Pro
MySQL 起動
ローカルファイルの読み取りできる状態で起動します。
mysql --local-infile -uroot -p
csv 追加まで
以下を MySQL 上で順番に実行して csv のデータを追加します。
-- サーバー側でインポートを有効にするオプションの設定
SET GLOBAL local_infile=on;
-- データベース作成
CREATE DATABASE {データベース名} DEFAULT CHARACTER SET utf8mb4;
-- データベース選択
USE {データベース名};
-- テーブル作成
-- このデータをインポートする前提のスキーマ指定
-- https://www.kaggle.com/c/demand-forecasting-kernels-only/data?select=test.csv
CREATE TABLE {テーブル名}(
date DATE NOT NULL,
store int(11) NOT NULL,
item int(11) NOT NULL,
sales int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- CSV インポート
LOAD DATA LOCAL INFILE "{csvデータのパス}"
INTO TABLE {テーブル名}
FIELDS TERMINATED BY ',' ;
備考:環境変数確認
MySQL のパスが通ってなかったらGUIで環境変数を確認/追加できます。