MySQL5.7.11 で csv から import したい時の私的メモです。OS は Ubuntu 14.04.3 です。
MySQL 5.7 で csv から import
デフォルトの設定では, 特定の場所以外の csv を指定して import しようすると下記のように権限関連のエラーとなった。5.6では上手くいっていた気がする…
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
MySQL5.7.11 (Ubuntu14.04) ではデフォルトの場所は下記だった。
mysql> SELECT @@global.secure_file_priv;
+---------------------------+
| @@global.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/ |
+---------------------------+
1 row in set (0.01 sec)
場所に拘りはなかったので, csv を /var/lib/mysql-files/ に移動した。
$ sudo mv sample.csv /var/lib/mysql-files/
再度 import すると成功した。
mysql> LOAD DATA INFILE "/var/lib/mysql-files/sample.csv"
INTO TABLE sample
CHARACTER SET 'utf8'
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(@ignore, @2, @3)
SET id=@2, name=@3;
Ubuntu14.04 で MySQL5.7
順番が前後するけど Ubuntu14.04 で MySQL5.7 環境を作る時のメモ。
$ wget https://dev.mysql.com/get/mysql-apt-config_0.6.0-1_all.deb
$ sudo dpkg -i mysql-apt-config_0.6.0-1_all.deb
$ sudo apt-get update
$ sudo apt-get install mysql-server
バージョンと状態を確認。
$ mysql --version
mysql Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using EditLine wrapper
$ sudo service mysql status
* MySQL Community Server 5.7.11 is running
設定ファイルの場所を確認。
$ mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
$ less /etc/mysql/my.cnf
一般クエリログとスロークエリログを設定しておく。
$ vim /etc/mysql/my.cnf
...
general_log = 1
general_log_file= /var/log/mysql/query.log
slow_query_log = 1
long_query_time = 1
log_queries_not_using_indexes = 1
slow_query_log_file = /var/log/mysql/slow_query.log
$ sudo service mysql restart
* Stopping MySQL Community Server 5.7.11
* MySQL Community Server 5.7.11 is stopped
* Re-starting MySQL Community Server 5.7.11
* MySQL Community Server 5.7.11 is started
$ sudo service mysql status
* MySQL Community Server 5.7.11 is running
Pyhton の MySQLドライバ
Pyhton の MySQLドライバ は複数あって比較している人も多い。自分は mysql-connector-python を選択した。
$ wget https://dev.mysql.com/get/Downloads/Connector-Python/mysql-connector-python_2.1.3-1ubuntu14.04_all.deb
$ sudo dpkg -i mysql-connector-python_2.1.3-1ubuntu14.04_all.deb
簡単なクエリを投げてみたけど今のところは不便な感じはない。