Nie można wykonać komendy w bashu /sql

0

Uzywam do łączenia się z linuxem i bazą danych mysql putty ..itd.

Mam komendę : aby wykonać zapis bazy do .txt
mysql -ubafec -p -e "select * from bafec.passwd" > filename.txt
działa poparwnie, ale chciałem taką:

mysql -ubafec -p -e "
SELECT id FROM passwd
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';" > filename.txt
oto co się dzieje, nie da się zakończyć instrukcji, tylko ctrl+c
bash.jpg

0

ENCLOSED BY '"' - " powoduje zakończenie ciągu znaków, który otworzyłeś po -e.

0

mysql -ubafec -p -e "select id from bafj.passwd fields terminated by ','
enclosed by 'I' lines terminated by '\n';" > NAME.txt
I to duże i, a nie ten znak nad enterem
Zrobiłem tak, ale jest problem z polecniem sql <syntax error="error">, jest niepoprawne, dlaczego? nie mozna tak zrobić?

0

Bo to jest zła składnia, definiowanie formatu w zapytaniu dotyczy składni SELECT INTO outfile, więc to powinno wygladać mniej więcej tak:

SELECT id FROM passwd
INTO OUTFILE '/tmp/filename.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
0
Panczo napisał(a):

Bo to jest zła składnia, definiowanie formatu w zapytaniu dotyczy składni SELECT INTO outfile, więc to powinno wygladać mniej więcej tak:

SELECT id FROM passwd
INTO OUTFILE '/tmp/filename.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';

sprobowałęm
bafec@wheezy-bar:~$ mysql -ubafec -p -e"

SELECT id FROM bafec.passwd
INTO OUTFILE 'BAZA.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY 'I'
LINES TERMINATED BY '\n';
"

ale jest błąd
ERROR 1045 (28000) at line 2: Access denied for user 'bafec'@'localhost' (using password: YES)

0

Użytkownik który puszcza takie zapytanie musi mieć uprawnienie FILe https://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html#priv_file

0

Kto mi wytłumaczy co robi opcja -e bo ona się odnosi do tych " ..... " tak? bo nie rozumiem co robi, w dok. pisze ze wykonuj i wyłacza się czyli nic z tego nie rozumiem

1 użytkowników online, w tym zalogowanych: 0, gości: 1