O que significa um símbolo de seta (“-”) na linha de comando?

6

Estou trabalhando com o Terminal (Mac OS X), mas acho que isso é parte integrante do Linux. Às vezes, quando executo um comando, o Terminal retorna uma nova linha recuada com apenas -> na linha. Parece que está esperando por algo, mas não sei se requer ação da minha parte ou não. Pressionar enter simplesmente retorna outra linha idêntica. Quando eu Ctrl + C , ele diz Aborted , o que significa que algo estava claramente processando. O que isto significa? Por exemplo, o seguinte:

$ mysql -u root -h host -p
Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is X
Server version: 5.1.39-log MySQL Server

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> mysqldump my_database
    -> 
    -> [Ctrl + C]
    -> Aborted
$

Edit: Parece que esta é uma sintaxe defeituosa para o comando, mas não tenho certeza se essa é a razão para as setas.

    
por Josh Leitzel 05.07.2010 / 17:11

4 respostas

11

Na ferramenta de linha de comando MySQL, isso significa que a ferramenta espera que sua entrada continue na próxima linha. Aqui está aguardando o caminho de destino.

Comandos SQL "completos" comuns são gravados com recuos, que são suportados na linha de comando. Você diria algo como

SELECT
    'users'.*
FROM
    'users'
WHERE
    'users'.'is_active' = 1 AND
    'users'.'age' < 13
ORDER BY
    'users'.'username'
    
por 05.07.2010 / 17:22
7

As setas são um prompt interativo de continuação. Se você digitar um comando inacabado, o shell SQL (chamado pelo comando mysql) está aguardando o restante dele.

Neste caso em particular, o shell SQL está aguardando um caminho de destino para o mysqldump.

Além disso, os comandos não estão completos até que você termine os comandos com um ponto-e-vírgula. (Obrigado @MrStatic)

    
por 05.07.2010 / 17:19
1

Você realmente tem um erro de sintaxe; Comandos SQL devem terminar com um ponto e vírgula. Por exemplo:

mysqldump my_database;
    
por 30.04.2012 / 19:39
0

Se você usar MariaDB , mysqldump não é um comando mysql. Corra no bash.

$ mysqldump -u root -h host -p ### my_database > dump.sql

Para ter um uso mais exato, execute mysqldump --help .

    
por 13.09.2017 / 07:29