6

Я работаю с терминалом (Mac OS X), но я думаю, что это встроенная часть Linux. Иногда, когда я выполняю команду, Терминал возвращает новую строку с отступом, просто -> в строке. Кажется, что он чего-то ждет, но я не знаю, требует ли это каких-либо действий с моей стороны или нет. Нажатие ввода просто возвращает другую, идентичную строку. Когда я Ctrl + C , Aborted , означающее, что что-то явно обрабатывается. Что это значит? Например, следующее:

$ 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
$

Редактировать: Кажется, что это неправильный синтаксис команды, но я не уверен, что причина стрелок.

4 ответа4

11

В инструменте командной строки MySQL это означает, что инструмент ожидает, что ваш ввод будет продолжен на следующей строке. Здесь его ждет путь назначения.

Обычные "полные" команды SQL пишутся с отступами, что поддерживается в командной строке. Вы бы сказали что-то вроде

SELECT
    `users`.*
FROM
    `users`
WHERE
    `users`.`is_active` = 1 AND
    `users`.`age` < 13
ORDER BY
    `users`.`username`
7

Стрелки - это интерактивная подсказка продолжения. Если вы введете незавершенную команду, оболочка SQL (вызывается командой mysql) ждет остальной части.

В этом конкретном случае оболочка SQL ожидает путь назначения для mysqldump.

Кроме того, команды не завершены, пока вы не завершите команды точкой с запятой. (Спасибо @MrStatic)

1

У вас действительно есть синтаксическая ошибка; Команды SQL должны заканчиваться точкой с запятой. Например:

mysqldump my_database;
0

Если вы используете MariaDB, mysqldump не является командой mysql. Запустите его в bash.

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

Чтобы быть более точным, запустите mysqldump --help .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .