Как запустить mysql через командную строку linux

Linux.yaroslavl.ru

Справочное руководство по MySQL

4.8.2 mysql, Утилита командной строки
  • 4 Администрирование баз данных
    • 4.8 Клиентские сценарии и утилиты MySQL
      • 4.8.1 Обзор клиентских сценариев и утилит
      • 4.8.2 mysql , Утилита командной строки
      • 4.8.3 mysqladmin , Администрирование MySQL-сервера.
      • 4.8.4 Использование mysqlcheck для сопровождения и аварийного восстановления таблиц.
      • 4.8.5 mysqldump , Получение дампов данных и структуры таблицы
      • 4.8.6 mysqlhotcopy , Копирование баз данных и таблиц MySQL
      • 4.8.7 mysqlimport , импорт данных из текстовых файлов
      • 4.8.8 Просмотр баз данных, таблиц и столбцов
      • 4.8.9 perror, разъяснение кодов ошибок
      • 4.8.10 Как запускать SQL-команды из текстового файла

4.8.2 mysql , Утилита командной строки

Утилита командной строки mysql является простой SQL-оболочкой (с возможностями библиотеки readline проекта GNU). Она поддерживает интерактивный и неинтерактивный режимы. В интерактивном режиме результаты запроса представляются в ASCII-формате. При использовании в неинтерактивном режиме (например, в качестве фильтра) результат представляется в текстовом формате с символом табуляции в качестве разделителя (выходной формат можно изменить при помощи параметров командной строки). Сценарии можно запускать, как показано ниже:

Если возникают проблемы из-за недостатка памяти на данном клиенте, применяйте параметр —quick ! Это заставит mysql использовать функцию mysql_use_result() вместо функции mysql_store_result() для получения результирующей выборки данных.

Использовать mysql очень легко. Запустите mysql database или mysql —user=user_name —password=your_password databas e. Наберите SQL-команду прямо в командной строке, завершив ее одним из символов: `;’ , `\g’ или `\G’ , и нажмите клавишу «Ввод».

Утилита командной строки mysql поддерживает следующие параметры:

-?, —help Вывод справочной информации об использовании программы и выход из нее. -A, —no-auto-rehash Отключает автоматическое рехеширование. rehash следует использовать для получения хеша таблиц и полей. Это обеспечивает более быстрый старт mysql . —prompt=. Устанавливает приглашение на ввод команд в заданном формате. -b, —no-beep Выключает звуковой сигнал об ошибке. -B, —batch Выводит результаты в пакетном режиме с символом табуляции в качестве разделителя, каждая строка с новой строки. Файл истории не используется. —character-sets-dir=. Директория, где находятся наборы символов. -C, —compress Использовать сжатие данных в протоколе сервер/клиент. -#, —debug[=. ] Журнал отладки. Значение по умолчанию — ‘d:t:o,/tmp/mysql.trace’. -D, —database=. Имя используемой базы данных. Большей частью применяется в конфигурационном файле `my.cnf'. —default-character-set=. Установить набор символов по умолчанию. -e, —execute=. Выполнить команду и завершить программу (вывод результата как и для —batch ). -E, —vertical Вывести результаты запроса (строки) по вертикали. Можно произвести вывод подобным образом и без данного параметра, завершая команды символами \G . -f, —force Продолжать обработку даже при обнаружении ошибки SQL. -g, —no-named-commands Выключает именованные команды. Следует использовать только команды вида \* либо применять именованные команды только в начале строки, заканчивающейся символом `;’ . Начиная с версии 10.9 клиент запускается с этой опцией, включенной по умолчанию! С опцией -g , однако, длинные команды все еще работают с первой строки. -G, —enable-named-commands Разрешает именованные команды. Допускаются длинные команды, а также укороченные команды вида \*. -i, —ignore-space Игнорировать пробел после имен функций. -h, —host=. Подсоединиться к базе данных на указанном хосте. -H, —html Вывести выходные данные в виде HTML. -L, —skip-line-numbers Не указывать номера строк для ошибок. Полезно для сравнения результирующих файлов, включающих сообщения об ошибках. —no-pager Блокирует пейджер (программа постраничного вывода) и выводит результат в стандартный вывод stdout (в Unix). Смотрите также команду \ h (интерактивная помощь). —no-tee Блокирует выходной файл. Смотрите также команду \h (интерактивная помощь). -n, —unbuffered Очищать буфер после каждого запроса. -N, —skip-column-names Не указывать имена столбцов в результатах. -O, —set-variable var=option Установить значение переменной. Список используемых переменных выводится через —help . -o, —one-database Обновить только базу данных, установленную по умолчанию. Позволяет пропускать обновления другой базы данных в журнале обновления. —pager[=. ] Устанавливает тип данных вывода. По умолчанию это переменная окружения PAGER . Ее возможные значения — less, more, cat [> имя файла], и т.д. См. также команду \h (интерактивная помощь). Этот параметр не работает в пакетном (batch) режиме. Пейджер работает только под Unix. -p[password], —password[=. ] Пароль, используемый при подсоединении к серверу баз данных. Если в командной строке пароль не указан, то он запрашивается у пользователя. При использовании краткой формы -p не оставляйте пробел между параметром и значением пароля. -P —port=. Номер порта TCP/IP, используемый для подсоединения. -q, —quick Не кэшировать результат. Выводить его строка за строкой так, как он приходит от сервера. Это может замедлить скорость работы сервера, если вывод результата будет приостановлен. Файл истории не используется. -r, —raw Показывать значения столбцов без какого-либо преобразования. Используется с —batch . -s, —silent Режим молчания. Выводить только сообщения об ошибках. -S —socket=. Файл сокета, используемый для подсоединения. -t —table Выводить результат в табличном формате. Установлено по умолчанию для непакетного режима. -T, —debug-info Выводить некоторые отладочные данные при выходе из программы. —tee=. Присоединить что-либо к выходному файлу. Смотрите также команду \h (интерактивная помощь). Этот параметр не работает в пакетном режиме. -u, —user=# Имя пользователя MySQL, если этот пользователь не является активным в данное время. -U, —safe-updates[=#], —i-am-a-dummy[=#] Разрешает выполнять только операции UPDATE и DELETE , используя ключи. Более полная информация об этом параметре приведена ниже. Можно сбросить данный параметр, установив в конфигурационном файле `my.cnf' значение аргумента —safe-updates=0 . -v, —verbose Более расширенный режим вывода результатов ( -v -v -v дает формат вывода таблицы). -V, —version Вывод информации о версии и выход из программы. -w, —wait Если соединение с сервером упало, подождать и попытаться восстановить его, вместо того, чтобы прервать работу.

Читайте также:  Почему появляется конфликт ip адресов windows

Через параметры командной строки -O или —set-variable можно также установить следующие переменные:

Имя переменной По умолчанию Описание
connect_timeout 0 Число секунд до истечения времени ожидания соединения
max_allowed_packet 16777216 Максимальная величина пакета, посылаемого/принимаемого с сервера
net_buffer_length 16384 Размер буфера для TCP/IP и сокетного соединения
select_limit 1000 Автоматическое ограничение количества команд SELECT при использовании —i-am-a-dummy
max_join_size 1000000 Автоматическое ограничение количества связанных строк при использовании —i-am-a-dummy.

Если ввести в командной строке help , программа mysql выведет список поддерживаемых ею команд:

Команда pager работает только под Unix.

Команда status дает информацию о текущем соединении и используемом сервере. Если вы работаете в режиме —safe-updates , команда status также выведет значения переменных для mysql , которые влияют на ваши запросы.

Для начинающих рекомендуется пользоваться программой mysql с установленным параметром (введен в MySQL 3.23.11) —safe-updates (или —i-am-a-dummy для пользователей, выполнивших DELETE FROM table_name , но забывших указать аргументы в WHERE ). В этом случае mysql при установлении соединения посылает следующую команду MySQL-серверу:

где #select_limit# и #max_join_size# — переменные, которые можно установить из командной строки mysql. See section 5.5.6 Синтаксис команды SET .

Результат этого следующий:

  • Не разрешено выполнять команды UPDATE или DELETE , если не указаны ограничения по ключам в секции WHERE . Однако можно заставить выполняться команды UPDATE / DELETE , используя оператор LIMIT :
  • Все слишком большие результаты ограничены строками #select_limit# .
  • SELECT ы, которые могут потребовать для исполнения количество комбинаций строк более, чем #max_join_size# , будут прерваны.

Несколько полезных советов по использованию клиента mysql :

Некоторые данные более удобочитаемы при выводе их по вертикали вместо обычно используемого горизонтального окна вывода. Например, текст, который больше по длине, чем по ширине, и содержит в себе много новых строк, часто намного легче читать в вертикальном представлении.

  • Для входа в систему можно использовать опции команды tee. Она может быть запущена с помощью параметра —tee=. для mysql или интерактивно из командной строки вводом команды tee . Все представляемые на экране данные будут также добавлены к заданному файлу. Это может быть очень полезно для целей отладки программы. Утилиту tee можно блокировать из командной строки командой notee . Повторный запуск команды tee снова включит журналирование. Если при этом параметр для команды tee не указан, то будет использоваться предыдущий файл. Следует учесть, что команда tee будет записывать результаты в файл после каждой выполненной команды, как раз перед появлением командной строки для ввода очередной команды.
  • При помощи опции —pager[=. ] стал возможным просмотр или поиск результатов в интерактивном режиме с помощью Unix-программ less , more или иных подобных. Если явно не указать аргумент в этом параметре, клиент mysql будет искать переменную окружения PAGER и установит значение pager . Программу pager также можно запустить из интерактивной командной строки командой pager и остановить командой nopager . Команда может принимать аргумент, который является необязательным; pager будет установлена в значение этого аргумента.. Команда pager может быть вызвана и без аргумента, но это требует использования опции —pager или соответствующей установки по умолчанию стандартного вывода stdout . Команда pager работает только в Unix, поскольку использует функцию popen() , отсутствующую в Windows. Вместо этого в Windows можно использовать параметр tee , хотя в ряде ситуаций это менее удобно, чем применение команды pager .
  • Несколько советов касательно команды pager : Ее можно использовать для записи в файл: и результаты будут направлены только в файл. Вызываемые командой pager программы могут принимать любые допустимые опции: Обратите особое внимание на опцию -S в вышеприведенном примере. Она может быть очень полезна при просмотре результатов. Попробуйте применить ее с горизонтальным выводом (завершайте команды символами ‘\g’, or ‘;’) и с вертикальным (в конце команд — ‘\G’). Очень громоздкие результаты вывода иногда трудно бывает прочесть с экрана, в этом случае команда less с опцией -S позволит просмотреть результаты в интерактивном режиме слева направо, при этом при появлении строк с длиной больше, чем ширина экрана, их вывод будет продолжен вывод с новой строки. Вывод данных в таких случаях получается более удобочитаемым. При интерактивном вызове команды less с опцией ‘-S’ можно переключать режим ее работы (включено/выключено) из командной строки. Чтобы получить дополнительную информацию относительно less, обращайтесь к описанию команды ‘h’.
  • В заключение отметим (если вы этого еще не поняли из предыдущих примеров), что существует возможность комбинировать очень сложные способы обработки результатов. Так, в следующем примере результаты будут посланы в два различных каталога, смонтированных на двух различных жестких дисках в /dr1 and /dr2, и, несмотря на это, результаты можно увидеть на экране посредством команды less:
  • Приведенные выше функции можно тоже комбинировать: запустив tee и установив pager в less , можно просматривать результаты с помощью Unix-команды less и при этом одновременно производить запись в файл. Разница между служебной Unix-утилитой tee , используемой в программе pager , и встроенной в клиент mysql командой tee заключается в том, что встроенная команда tee работает даже в том случае, если в Unix утилита tee недоступна. Встроенная команда tee также ведет запись всего, что выводится на экран, тогда как утилита Unix tee , используемая с pager , не делает этого в достаточном объеме. Последнее, но тем не менее важное обстоятельство состоит в том, что интерактивная команда tee более удобна для переключения режимов работы включено/выключено, если при записи в файл иногда возникает необходимость отключить эту функцию.
Читайте также:  Отключить защитника windows 10 remontka

Можно изменить формат приглашения в командной строке клиента mysql .

Возможны следующие опции приглашения:

Опция Описание
\v версия mysqld
\d имя используемой базы данных
\h имя хоста, к которому производится подсоединение
\p номер порта, через который производится подсоединение
\u имя пользователя
\U полный адрес username@host
\\ обратный слэш `\’
\n символ новой строки
\t табуляция
\ пробел
\_ пробел с подчеркиванием
\R время по военному часовому поясу (0-23)
\r время по стандартному часовому поясу (1-12)
\m минуты
\y два разряда года
\Y четыре разряда года
\D полный формат даты
\s секунды
\w день недели в трехбуквенном формате (Mon, Tue, . )
\P Время до полудня/после полудня (am/pm)
\o месяц в числовом формате
\O месяц в трехбуквенном формате (Jan, Feb, . )
\c Счетчик, подсчитывающий количество вводимых команд

Символ `\’ за которым следует любая другая буква, просто дополняет эту букву.

Установить параметры приглашения можно следующими способами:

Источник

Работаем с MySQL через командную строку

День добрый, друзья! 🙂 Для подключения к mysql наберите

  • h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
  • u — имя пользователя
  • p — пароль, его нужно будет ввести после нажатия enter

Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать

Если на экране появляется приветствие mysql, то всё прошло ok.

Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».

Читайте также:  Комп не устанавливает windows с диска

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

Результатом будет что то вроде этого:

Выбрать базу данных jeka:

Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):

Просмотреть структуру таблицы (имена и тип полей):

Достать информацию о юзере с >

Бэкап структуры таблицы, а точнее sql-запрос на её создание

Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:

Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Подробнее о том, как изменять структуру mysql-таблиц (alter table).

Что делать если вижу знаки вопросов вместо текста в MySQL?

Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:

Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:

Как сделать бэкап базы mysql через консоль Linux?

Сделать бэкап базы database в файл dump_name.sql

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.

Развернуть базу из файла через командную строку

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу

Сделать дамп структуры одной таблицы mysql (без данных):

Например, задампим таблицу users из базы данных mydatabase:

Развернуть mysql-dump в БД с именем database_name:

Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:

Заключение

Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.

  • Как сделать копию структуры таблицы в mysql? Решено!
  • Как добавить AI в существующую таблицу MySQL? 2 ответа
  • Получить комментарии к полям mysql-таблицы 1 ответ
  • Как переименовать таблицу в MySQL? Решено!
  • mysqldump: Got error: 1044: Access denied for user when using LOCK TABLES 1 ответ
  • MySQL — изменение полей, структуры таблицы 0 комментариев
  • Запросы инъекции для mysql 0 комментариев
  • Доступ к mysql из-вне3 комментария
  • Mysql перенос таблиц из одной базы данных в другую 0 комментариев
  • Анализ производительности MySQL с использованием performance_schema 0 комментариев

Комментарии 2

Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.

eugene-PC:www eugene$ eugene$ sudo rpm -ivh

Источник

Оцените статью