Как выйти из консоли mysql
У меня установлен MySQL. Теперь я застрял внутри командной строке MySQL. Я побежал в MySQL вроде этого:
Потом я типа в какую-то недопустимую команду:
Как выйти из терминала MySQL в терминале по умолчанию?
Чтобы добавить на другой ответ, вы могли бы просто закончить текущий неверный запрос, используя точку с запятой:
Или использовать \Г (который предполагается сделать строк дисплея по вертикали):
Конечно, оба варианта предполагают, что вы не открывающей кавычки. Если вы делаете, вы должны сначала закрыть его с конца цитаты.
Почему клавиши Ctrl-C не выйти из режима ввода MySQL в Windows?
Потому что вы сказали MySQL, чтобы интерпретировать ваши команды выход в качестве допустимых входных данных.
То, что делает терминал MySQL и трудно понять, там есть разные режимы для одинарная кавычка, двойная кавычка, и нормальный режим.
Поэтому, чтобы выйти из режима ввода в MySQL, вы должны сделать следующие действия:
- Выйти из режима двойной кавычки.
- Выйти из одиночного режима цитату.
- Выйти из режима базы данных MySQL.
- Выход MySQL вернуться в терминал по умолчанию.
Самый элементарный пример:
Вы никогда не оставили в приведенном выше примере режим по умолчанию, команды покинуть правильной работы.
Пример 2 (это то, что тебя вызвало такие затруднения).
Пока вы в одиночном режиме цитату или режим двойной кавычки, escape-последовательности не соблюдается. Даже <и>сочетание клавиш CTRL-C и ЛТ;/КБД> и <и>нажать Ctrl-Д</роз> игнорируются в этих режимах.
В котором один из 26 вселенные не CTRL-C не остановить программу в любом режиме? Мы можем никогда не узнать. Базинга.
SQL поддерживает запросы, введенные в нескольких строках. Только когда вы введете точку с запятой ; будет ли запрос быть исполнен. Вы также должны быть прекращены любые строки в запросе.
Если вы видите это, вы можете ввести команду, закончить его ; и нажмите Enter.
Если вы видите приглашение вроде этого:
Далее MySQL-это ждет вас, чтобы завершить строку с цитатой или запроса с запятой.
Я думаю, что это безопаснее, чем завершение и выполнения непредвиденных запросов. После этого, вы должны вернуться к > оперативное и можете выйти с:
Я установил MySQL. Теперь я застрял в командной строке MySQL. Я запускал MySQL вот так:
Затем я ввожу какую-то неверную команду, например:
И независимо от того, что я печатаю, я не могу выйти из командной строки / терминала MySQL. Например:
Как выйти из терминала MySQL в терминал по умолчанию?
Чтобы добавить другой ответ, вы можете просто завершить текущий неверный запрос, используя точку с запятой:
Или используя \G (который должен заставить строки отображаться вертикально):
Конечно, оба варианта предполагают, что у вас нет вступительной цитаты. Если вы это сделаете, вы должны сначала закрыть его конечной цитатой.
Что меня сбило с толку, так это то, что я не до конца понимал, как терминал mysql обрабатывает ввод в различных режимах цитат, как определено здесь: dev.mysql.com/doc/refman/5.0/en/entering-queries.html Существует 5 режимов. : -> , '> , "> , `> , и /*> я проверил его снова на последних версиях, и она работала правильно. Так что похоже на исправленную ошибку. Точка с запятой не работает . ничего не работает. Если я делаю \ G, он действует так, как если бы он вышел из этого глупого режима ->, но затем возвращается в него после другой команды. Почему MySQL так глупо об этом? Реальный ответ таков: mysql cli в Windows испорчен и может застрять. Самый простой способ для Windows - просто использовать git bashПочему ctrl-c не выходит из режима ввода mysql в Windows?
Потому что вы сказали MySQL интерпретировать ваши команды выхода как допустимый ввод.
Что делает терминал MySQL трудным для понимания, так это то, что существуют разные режимы для одинарных, двойных и нормальных режимов.
Таким образом, чтобы выйти из режима ввода mysql, вам нужно будет выполнить следующие шаги:
- Выйти из режима двойных кавычек.
- Выйдите из режима одинарных кавычек.
- Выйти из режима MySQL.
- Выйдите из mysql обратно в терминал по умолчанию.
Самый простой пример:
В приведенном выше примере вы никогда не выходили из режима по умолчанию, поэтому команды выхода работают правильно.
Пример 2 (это то, что вас сбивает с толку).
Пока вы находитесь в режиме одинарных или двойных кавычек, escape-последовательности не соблюдаются. Даже Ctrl-C и Ctrl-D игнорируются в этих режимах.
В какой из 26 вселенных Ctrl-C не останавливает программу независимо от режима? Возможно, мы никогда не узнаем. Bazinga.
Я предполагаю, что кавычки избегают вещей, и это ждет большего ввода. Это действительно имеет смысл, когда вы можете хранить что-то вроде «выхода» в базе данных @Eric, хотя Ctrl-D не работает, когда вы находитесь в режиме цитирования, Ctrl-C по- прежнему работает, если вы используете более старые клиенты, такие как mysql 5.5.43 и mysql 5.1.73. Проверено на win 8.1.SQL поддерживает запросы, введенные в несколько строк. Только когда вы введете точку с запятой ; , запрос будет выполнен. Вы также должны прекратить любые строки в вашем запросе.
Следите за тем, чтобы копировать и вставлять запросы со строками из пакета обработки текста - кавычки могли быть заменены «умными кавычками», и это испортит ваш запрос.
Если вы ввели незавершенный запрос, он не запускается, и поэтому ввод не работает - MySQL считает, что вы все еще находитесь в середине запроса. Изменения в командной строке показывают, какие данные необходимы для завершения запроса. Например, может потребоваться цитата или двойная цитата. Это мощное средство, и командная строка полезна, но я находил это непонятным, пока не прочитал ответы и комментарии в этой теме.
Приглашение «верхнего уровня»:
Если вы видите это, то вы можете ввести команду и завершить ее; и нажмите ввод.
Если вы видите приглашение, подобное этому:
Затем MySQL ждет, когда вы завершите строку с кавычкой или запрос с точкой с запятой.
Вот как сказать MySQL отменить запутанный неопределенный запрос и вернуть вас в главное приглашение:
Я думаю, что это безопаснее, чем завершать и запускать непреднамеренный запрос. После этого вы должны вернуться к приглашению> и можете выйти с помощью:
У меня CentOS 64bit с установленным CPanel и я использую:
130303 17:42:38 [Warning] /usr/sbin/mysqld: Forcing close of thread
В err.log файле я вижу много таких:
[Warning] /usr/sbin/mysqld: Forcing close of thread
Прямо сейчас я должен сделать, killall -9 mysql но есть ли лучший способ?
Сервер также очень и очень активен.
Это проблема с конфигурацией? У меня слишком высокие настройки памяти?
Самый простой способ выключить MySQL - просто запустить
Сервисный файл mysql ( /etc/init.d/mysql ) зависит от наличия файла сокета. Исторически говоря, возвращаясь к MySQL 4.0, файл сокета иногда исчезает необъяснимым образом. Это мешает стандарту service mysql stop работать.
потому что туздЫ будет маршрутизировать пользователь подходит как [email protected] для , root@localhost если TCP / IP явным образом не включен. По умолчанию туздЫ будет выбирать наименьший путь сопротивления и подключиться [email protected] к root@localhost через файл сокета. Тем не менее, если нет файла сокета, root@localhost никогда не будет подключаться.
Если вы выполняете завершение работы mysqladmin при подключении к локальному серверу с помощью файла сокета Unix, mysqladmin будет ждать, пока файл идентификатора процесса сервера не будет удален, чтобы убедиться, что сервер остановился правильно.
Вот почему необходимо включить TCP / IP:
Вернувшись 30 сентября 2011 года, я написал собственную версию mysqld_multi call mysqlservice (см. Мой пост: запуск нескольких экземпляров на одном хосте ). Он служит виртуальным движком для подключения к mysqld из разных портов. Вы просто должны принести свой собственный my.cnf с настроенными параметрами. В этом сценарии я выполняю выключения, как это:
Обратите внимание, я использую 127.0.0.1 и явный порт. Таким образом, я не полагаюсь на файл сокета.
Я всегда использовал mysqladmin --protocol=tcp shtudown как правильную альтернативу отключениям mysql, если service mysql stop зависает. Делать kill -9 дальше mysqld и mysqld_safe следует последним из последних из последних курортов. (Да, я сказал последние три раза).
Много раз mysqld удалял mysql.sock без предупреждения. У других людей была эта проблема также за эти годы:
Если вы беспокоитесь о том, что происходит во время выключения, есть способ манипулировать временем выключения и способом переноса данных на диск, особенно если у вас много данных InnoDB в пуле буферов
Если у вас много грязных страниц, вы можете понизить innodb_max_dirty_pages_pct до 0:
Установите это примерно за 15-30 минут до выключения. Это даст mysqld минимально возможное количество грязных страниц для записи на диск.
По умолчанию innodb_fast_shutdown равен 1. Для этой опции есть три значения
- 0: InnoDB выполняет медленное выключение, полную очистку и объединение буфера вставки перед выключением.
- 1: InnoDB пропускает эти операции при завершении работы, процесс, известный как быстрое завершение работы.
- 2: InnoDB сбрасывает свои журналы и выключается, как будто MySQL потерпел крах; зафиксированные транзакции не теряются, но операция восстановления после сбоя делает следующий запуск более длительным.
Документация далее говорит это:
Медленное отключение может занять минуты или даже часы в крайних случаях, когда значительные объемы данных все еще буферизируются. Используйте метод медленного завершения работы перед обновлением или понижением версии между основными выпусками MySQL, чтобы все файлы данных были полностью подготовлены на случай, если процесс обновления обновит формат файла.
Используйте innodb_fast_shutdown = 2 в экстренных ситуациях или при устранении неполадок, чтобы получить максимально быстрое отключение, если данные подвергаются риску повреждения.
Значения по умолчанию для innodb_max_dirty_pages_pct и innodb_fast_shutdown должны быть очень хорошими в большинстве случаев.
Файл сокета исчезает в производных Red Hat, потому что tmpwatch удаляет его вместе со всем остальным /tmp , у которого время больше заданного порога. В Debian или Ubuntu mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown . этот файл содержит учетные данные для учетной записи MySQL, похожей на root. Как обычно, @RolandoMySQLDBA вы - один из лучших ресурсов DBA на сайтах Stack Exchange. Отличная работа, которая помогла мне 6+ лет спустя.Звучит так, как будто ваш вопрос не столько о том, «как» закрыть MySQL, сколько о том, почему ваш закрывается так медленно.
В своем ответе на аналогичный вопрос я предложил несколько предложений по плавному перезапуску, которые помогают уменьшить количество действий, которые должны произойти после того, как MySQL начнет процесс завершения работы .
Если вы не являетесь частым пользователем SHOW FULL PROCESSLIST; этого пункта № 1, потому что вам нужно иметь представление о том, что происходит на вашем сервере, что делает отключение таким медленным. Если есть длительные запросы, которые безопасно прерывать, вы можете их убить KILL <thread-id> .
Резюмируя другие предложения:
Установка глобальной переменной innodb_fast_shutdown = 1 (по умолчанию) ускорит часть отключения InnoDB. Это только безопасным, однако, если вы выключая сервер по причинам , не связанным с выполнением обновления. Если вы закрываетесь для обновления, это должно быть установлено в 0.
Использование FLUSH TABLES; изящно закрывает все открытые таблицы. Они будут открыты, если на них ссылаются последующие запросы, но это действие должно в конечном итоге сократить время, которое проходит между временем, когда вы запрашиваете завершение работы, и временем, когда оно завершается, потому что оно выполняет некоторую раннюю служебную работу и, что более важно, устанавливает этап для последнего шага .
На занятом сервере эти шаги должны снизить уровень активности на сервере, сделать работу намного тише и помочь сделать завершение работы или перезагрузку более плавной.
Я установил MySQL. Теперь я застрял в командной строке MySQL. Я запускал MySQL вот так:
Затем я ввожу какую-то неверную команду, например:
И независимо от того, что я печатаю, я не могу выйти из командной строки / терминала MySQL. Например:
Как выйти из терминала MySQL в терминал по умолчанию?
Вы пытались выключить компьютер? / s VarunAgw 3 года назад 04 ответа на вопрос
Чтобы добавить другой ответ, вы можете просто завершить текущий неверный запрос, используя точку с запятой:
Или используя \G (что должно заставить строки отображаться вертикально):
Конечно, оба варианта предполагают, что у вас нет вступительной цитаты. Если вы это сделаете, вы должны сначала закрыть его конечной цитатой.
Что меня сбило с толку, так это то, что я не до конца понимал, как терминал mysql обрабатывает ввод в различных режимах цитирования, как это определено здесь: https://dev.mysql.com/doc/refman/5.0/en/entering-queries.html. Есть 5 режимов: `->`, `'>`, `"> `,` \ `>` и `/ *>` Я снова протестировал его на последних версиях, и он работал правильно. исправлена ошибка. Eric Leschinski 6 лет назад 0 Точка с запятой не работает . ничего не работает. Если я делаю \ G, он действует так, как будто он вышел из этого глупого режима ->, но затем возвращается в него после другой команды. Почему mysql так глуп по этому поводу? Amalgovinus 4 года назад 0 Реальный ответ: mysql cli в Windows испорчен и может застрять. Самый простой способ для Windows - просто использовать git bash. Amalgovinus 3 года назад 0Why does ctrl-c not exit mysql input mode in Windows?
Because you have told MySQL to interpret your exit commands as valid input.
What makes the MySQL terminal hard to understand is there there are different modes for single quote, double quote, and normal mode.
So to get out of mysql input mode, you will have to do these steps:
- Get out of double quote mode.
- Get out of single quote mode.
- Get out of mysql mode.
- Exit mysql back to the default terminal.
Most basic example:
You never left default mode in the above example so exit commands work correctly.
Example 2 (this is what is tripping you up).
While you are in single quote mode or double quote mode, no escape sequences are respected. Even Ctrl-C and Ctrl-D are ignored in these modes.
In which one of the 26 universes does Ctrl-C not stop a program regardless of mode? We may never know. Bazinga.
В этой статье рассмотрим, как создавать новые базы данных в MySQL из командной строки сервера, (а также BASH-скрипт для автоматического создания базы данных и пользователя MySQL на сервере).
Для того, чтобы воспользоваться интерфейсом MySQL на удалённом сервере, необходимо сперва законнектится к серверу MySQL. В Debian это можно сделать командой mysql -uroot так, чтобы сразу войти в интерфейс с правами root. После удачного входа появится приветствие сервера MySQL и приглашение для ввода команд на языке MySQL:
Выход в консоли из режима работы с MySQL-сервером
Для того, чтобы выйти из режима работы с MySQL-сервером в консоли нужно набрать команду exit:
CREATE DATABASE — команда MySQL для создания базы данных
Для того, чтобы создать базу данных на сервере нужно воспользоваться командой MySQL CREATE DATABASE , введя после неё в `` название базы данных. Помним про синтаксис MySQL и после команды обязательно ставим ; :
Более полная конструкция команды CREATE DATABASE :
- CHARACTER SET задаёт порядок сортировки.
- COLLATE задаёт кодировку таблиц создаваемой базы данных.
Если при создании таблицы эти параметры не указываются, то кодировка и порядок сортировки вновь создаваемой таблицы берутся из значений, указанных для всей базы данных, которую мы и прописываем этой командой.
- Если задан параметр CHARACTER SET , но не задан параметр COLLATE , то используется стандартный порядок сортировки.
- Если задан параметр COLLATE , но не задан CHARACTER SET , то кодировку определяет первая часть имени порядка сортировки в COLLATE .
- Кодировка, заданная в CHARACTER SET , должна поддерживаться сервером,
- а порядок сортировки должен быть допустимым для текущей кодировки.
Как посмотреть настройки уже существующей базы данных
Для того, чтобы посмотреть настройки уже существующей базы данных необходимо выполнить команду SHOW CREATE DATABASE, указав имя базы данных, настройки которой нужно посмотреть:
Как посмотреть список всех баз данных на сервере MySQL
Для того, чтобы вывести список всех баз данных на сервере MySQL нужно воспользоваться командой show databases :
Как удалить базу данных MySQL с сервера
Для удаления базы данных MySQL с сервера нужно воспользоваться командой DROP DATABASE и ввести имя удаляемой базы данных:
CREATE USER — команда MySQL для создания пользователя базы данных
Для создания пользователя базы данных нужно воспользоваться командой CREATE USER :
Для задания/изменения пароля пользователя базы данных нужно воспользоваться командой:
DROP USER — команда MySQL для удаления пользователя базы данных
Для того, чтобы удалить пользователя баз данных нужно выполнить команду DROP USER :
Простейший BASH-скрипт для создания новой базы данным MySQL с пользователем и паролем
Быстро создавать базы данных можно с помощью такого BASH-скрипта:
На входе этому скрипту нужно задать два параметра:
- Имя базы данных (у пользователя будет такое же имя)
- Пароль пользователя базы данных.
Пример работы такого скрипта create-mysql.sh при создании базы данных test c пользователем test и паролем 123 :
Простейший BASH-скрипт для удаления базы данным MySQL с пользователем
Также можно создать BASH-скрипт для удаления базы данным MySQL с пользователем, имеющим такое же имя, что и база данных. Работает с одним параметром на входе:
Резюме
Таким образом можно создавать и удалять базы данных MySQL и их пользователей на сервере, а также автоматизировать работу по их созданию и удалению.
Читайте также: