GNU/Linux >> Znalost Linux >  >> Linux

Nelze odeslat data MySQL do souboru

Podle dokumentace MySQL na SELECT ... INTO OUTFILE

Jakýkoli soubor vytvořený pomocí INTO OUTFILE nebo INTO DUMPFILE je zapisovatelný všemi uživateli na hostitelském serveru. Důvodem je, že server MySQL nemůže vytvořit soubor, který vlastní kdokoli jiný než uživatel, pod jehož účtem je spuštěn. (Z těchto a dalších důvodů byste nikdy neměli spouštět mysqld jako root.) Soubor tedy musí být celosvětově zapisovatelný, abyste mohli manipulovat s jeho obsahem.

Měli byste vypsat SELECT INTO OUTFILE do /var/lib/mysql následovně

SELECT * FROM data INTO OUTFILE 'data.csv';

Samozřejmě se musíte ujistit, že máte oprávnění FILE na [email protected]

Existují dva způsoby, jak získat toto oprávnění

METODA #1

GRANT FILE ON *.* TO 'gs'@'localhost';

METODA #2

UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
FLUSH PRIVILEGES;

AKTUALIZACE 2012-05-01 07:09 EDT

Chcete-li si udělit oprávnění FILE, proveďte následující:

service mysql restart --skip-networking --skip-grant-tables
mysql <hit enter>
UPDATE mysql.user SET File_priv = 'Y' WHERE user='gs' AND host='localhost';
exit
service mysql restart

Linux
  1. Protokoly přenosu souborů:FTP vs SFTP

  2. Přesměrování vstupu/výstupu v Linuxu/Unixu

  3. Jak uložit výstup SHOW PROCESSLIST do souboru v MySQL?

  1. Přesměrování a výstup potrubí?

  2. Výstupní obsah souboru, když se mění?

  3. Nahradit data mezi citacemi v souboru?

  1. Jak přesměrovat výstup programu do souboru ZIP?

  2. Syntaxe konfiguračního souboru Loggedfs?

  3. Skrytí dat v souborových systémech?