Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL ERROR 1290 (HY000) --secure-file-priv option


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):
  1. abra "MAMP" use o destaque
  2. clique em "Parar servidores"

  3. 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/"
  1. 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>