Ubuntu 16.04 (FÁCIL):descubra onde você tem permissão para escrever
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /var/lib/mysql-files/ |
+---------------------------+
1 row in set (0.00 sec)
Depois é só escrever lá
mysql> SELECT * FROM train INTO OUTFILE '/var/lib/mysql-files/test.csv' FIELDS TERMINATED BY ',';
Query OK, 992931 rows affected (1.65 sec)
mysql>
Mac OSX:Mysql instalado via MAMP
Descubra onde você pode escrever
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| NULL |
+---------------------------+
1 row in set (0.00 sec)
NULL significa que você está ferrado, então você tem que criar o arquivo "~/.my.cnf"
Ativar leitura/gravação para MySQL instalado via MAMP (no Mac):
- abra "MAMP" use o destaque
- clique em "Parar servidores"
-
edite ~/.my.cnf (usando o vi ou seu editor favorito) e adicione as seguintes linhas:
$ vi ~/.my.cnf
[mysqld_safe] [mysqld] secure_file_priv="/Users/russian_spy/"
- clique em "Iniciar servidores" (na janela MAMP)
Agora verifique se funciona:
uma. iniciar mysql (usuário MAMP padrão é root, a senha também é root)
$ /Applications/MAMP/Library/bin/mysql -u root -p
b. no mysql, veja os caminhos da lista branca
mysql> SELECT @@GLOBAL.secure_file_priv;
+---------------------------+
| @@GLOBAL.secure_file_priv |
+---------------------------+
| /Users/russian_spy/ |
+---------------------------+
1 row in set (0.00 sec)
c. Por fim, teste exportando uma tabela
train
em um arquivo CSV mysql> SELECT * FROM train INTO OUTFILE '/Users/russian_spy/test.csv' FIELDS TERMINATED BY ',';
Query OK, 992931 rows affected (1.65 sec)
mysql>