Как открыть консоль mysql в windows

Ознакомьтесь с азами работы через MySQl консоль. В статье описаны основные команды для работы с mysql консолью, а также способы запуска консоли.

Только для читателей Lifeexample возможно открыть интернет-магазин на Moguta.CMS со скидкой в 15%

MySQL консоль

Здравствуйте, уважаемые читатель блога LifeExample, настало время изменить привычному phpMyAdmin, с более брутальным инструментом для управления базой данных. Сегодня мы пощупаем MySQL консоль и научимся выполнять стандартные команды, а также команды по восстановлению баз данных. MySQL консоль – это стандартная СУБД (Система управления базами данных) для MySQL, поставляемая вместе с продуктом.

Когда может пригодиться MySQL консоль

С точки зрения начинающего web-программиста, phpMyAdmin выполняет все необходимые для нормальной работы функции. Представьте, что вы не только web-программист, но и, от части, системный администратор, который обязан восстановить БД после сбоя.

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

Как запустить MySQL консоль

Запустить консоль можно через проводник windows, найдя в папке с MySQL утилиту mysql.exe. Обычно она находится по адресу: [путь до папки]mysqlbinmysql.exe. В случае использования денвера, MySQL консоль, стоит искать в этом направлении:
C:WebServerusrlocalmysqlbinmysql.exe

Кроме проводника windows, можно использовать командную строку:

  • Запустите cmd.exe
  • Напишите полный путь до файла mysql.exe
  • Нажмите enter

Вы должны наблюдать такую картину:

Запуск консоли mysql

Ошибка говорит о том, что для запуска консоли mysql необходимо ввести логин и пароль пользователя. При работе с денвером, стандартным пользователем базы является root с пустым паролем.
Выполните туже команду с добавочными параметрами, указывающими данные для авторизации.

C:WebServerusrlocalmysql-5.1binmysql.exe –u root –p

Приветствие консоли mysq

Если все сделано верно, вы получите сообщение «Добро пожаловать в MySQL консоль…«

Убедиться в том, что вы успешно подключены к серверу БД, можно введя команду show databases;. В результате ее выполнения будет выведен перечень присутствующих баз данных на сервере.

Попробуем выбрать одну из БД и посмотреть список таблиц в ней:

use test; show tables;

В моем примере я обращаюсь к базе test, если у вас такой не существует, обратитесь к любой другой из имеющихся.

Вывод таблиц базы данных MySQL через консоль

В качестве эксперимента вы можете попробовать создать базу test, с помощью команды:

create database test;

На что получите сообщение: «QUERY OK, 1 row affected«, гласящие о успешном создании базы данных с именем test.

Теперь давайте создадим в базе test таблицу order.

create table test (`id` int(11),`content` varchar(255));

И вновь выполним команду show tables; , которая покажет, что таблица действительно создана, и доступна для работы с ней.

Также можно попробовать вывести список колонок в таблице:

show columns from test.order;

Вывод полей таблицы order

Ну и в завершение знакомства с консолью MySQL, выполним какой-нибудь запрос:

SELECT * FROM test.order;

Выполнение запроса MySQL в консоли

Итак, уважаемые читатели, я вас поздравляю, теперь вы можете работать с MySQL в спартанских условиях без phpMyAdmin. Приведу некоторый список, повседневных, команд:

  • CREATE DATABASE DB_NAME; — создать новую бд;
  • SHOW DATABASES; — просмотр имеющихся бд;
  • USE DB_NAME; — выбрать бд;
  • SHOW TABLES; — просмотр всех таблиц;
  • SHOW COLUMNS FROM TABLE_NAME; — просмотр колонок и их свойств;
  • CREATE TABLE TABLE_NAME (`ID` INT(11),`NAME` VARCHAR(255)); — создание таблицы;
  • ALTER TABLE TABLE_NAME ADD COLUMN_NAME INT(11); — добавить колонку в таблицу;
  • ALTER TABLE TABLE_NAME DROP COLUMN_NAME; — удалить колонку из таблицы ;
  • MYSQL -UUSERNAME -PPASSWORD -HHOST DB_NAME < FILE_NAME.SQL — залить бд;
  • MYSQLDUMP -UUSERNAME -PPASSWORD -HHOST DB_NAME > FILE_NAME.SQL — сделать дамп бд;
  • QUIT; — выход из консольки MySQL.

Команды для восстановления таблиц через консоль MySQL

Как и обещал в начале статьи, выкладываю команды для восстановления таблиц. Данные команды могут пригодиться после сбоя сервера.

  • CHECK TABLE имя_таблицы — Проверка таблицы на предмет ошибок в различных режимах.
  • OPTIMIZE TABLE имя_таблицы — Оптимизация таблиц.
  • REPAIR TABLE имя_таблицы — Ввосстановление таблицы.

Кроме этих MySQl команд, при восстановлении таблиц можно пользоваться специальной утилитой myisamchk, поставляемой вместе с MySQl.

Надеюсь, вы нашли в этой статье, полезную вам, информацию и теперь понимаете как работать через консоль MySQL. Подписывайтесь на RSS рассылки, в скором будущем будет опубликована статья, о использовании myisamchk.

Читайте также похожие статьи:

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

mysql-komandnaya-strokaДоброго времени суток, коллеги 🙂

Да, именно коллеги, потому как простому смертному MySQL командная строка (или MySQL Shell, как её ещё любят называть разработчики), равно как и работа с MySQL в консоли, вряд ли пригодится.

Для того, чтобы данная тема была интересна, нужно быть, как минимум, бэкэнд-разработчиком или начинающим системным администратором, которые не пользуются phpMyAdmin и другими интерфейсами принципиально.

Хотя, возможно, вы просто подписаны на уведомления и решили прочитать новую статью из чистого любопытства.

Ну что ж… Весьма похвально 🙂

В любом случае, я постараюсь, чтобы материал был одинаково интересен и понятен всем, кем бы вы ни работали и как бы вы ни были связаны с программированием. Собственно, чего я своими статьями и добиваюсь, в принципе 🙂

Итак, сегодня речь пойдёт о том, как работать с MySQL через командную строку на сервере. Я расскажу, в каких ситуациях данные знания вам могут пригодиться, как подключиться к базе данных MySQL в консоли, запускать командную строку MySQL и производить основные действия с БД, таблицами и их записями.

Одним словом, мы рассмотрим весь жизненный цикл БД и все основные операции, которые могут вам понадобиться в процессе. В результате у нас получится что-то вроде шпаргалки системного администратора, которой я сам буду активно в будущем пользоваться, т.к. всего в памяти не удержишь.

Поехали 🙂

  • Когда MySQL командная строка может пригодиться?
  • Запуск консоли на разных ОС
  • Основные команды консоли MySQL
  • Подключение к серверу MySQL в консоли
  • Как создать базу данных в MySQL консоли
  • Как создать пользователя MySQL в командной строке
  • Выбор базы данных при работе с MySQL через командную строку
  • Работа с таблицами MySQL через консоль MySQL
  • Работа с данными таблиц MySQL через командную строку
  • Как удалить базу данных MySQL через командную строку
  • Как удалить пользователя MySQL в консоли
  • Выход из консоли MySQL

Сразу скажу, что, если вы не собираетесь работать системным администратором или деплойщиком, то каждый день работать с MySQL через командную строку вам вряд ли понадобиться. Для повседневного использования вполне подойдёт старый добрый phpMyAdmin либо какой-то другой веб интерфейс или приложение для работы с MySQL.

Хотя, здесь имеет место привычка. Лично у меня есть знакомые из ранга «трушных кодеров», которые являются фанатами консоли со времён MS-DOS и чистого Linux, видимо, где работать с ОС можно было только из консоли.

Поэтому они и презирают всякого рода графические «примочки». Хотя, большинству пользователей подойдут именно они.

Лично я сам предпочитаю использовать phpMyAdmin как основную программу при создании сайтов для работы с MySQL, т.к. по природе своей являюсь визуалом. Однако, иногда на практике встречаются ситуации, когда знания MySQL командной строки и умения работы с MySQL в консоли сервера просто необходимы.

У меня на данный момент их было три:

  1. Впервые я столкнулся с работой в MySQL консоли, когда понадобилось сделать импорт большого дампа БД. Через phpMyAdmin он не загружался целиком, т.к. отваливался где-то посередине по таймауту, несмотря на изменение настроек времени выполнения операции и размеров загружаемых файлов. В принципе, можно было подобрать нужные значения, но мне показалось это слишком длительным процессом.
  2. В следующий раз поработать с MySQL через командную строку пришлось для отключения проверки внешних ключей, когда нужно было удалить данные из таблицы, которая с помощью ключей была связана с другими. В phpMyAdmin я просто не нашёл, как это сделать.
  3. В серьёзных компаниях для работы с MySQL используется исключительно консоль без каких-либо phpMyAdmin-ов. Не знаю почему конкретно, но знающие люди говорили, что это как-то связано с безопасностью. В результате, всем приходилось работать с командной строкой MySQL, в том числе и мне 🙂

Но, повторюсь, работа с MySQL в консоли и командной строке вполне подходит и для повседневного использования. Все известные визуальные программы для работы с БД всё равно работают на основе консольных команд MySQL. Поэтому, кому как нравится 🙂

Запуск консоли на разных ОС

Поскольку я буду демонстрировать работу с командной строкой MySQL в консоли сервера, то для начала неплохо бы было её запустить.

Действие простое, многим знакомое, для которого достаточно знания «горячих клавиш».

Запуск консоли в Windows:

  • Win+R для открытия командной строки Windows с правами администратора;
  • Вводим команду cmd
  • Нажимаем Enter на клавиатуре

Запуск консоли в Linux дистрибутивах (терминала): в Ubuntu, с которой я работал, достаточно системной комбинации клавиш Ctrl+Alt+T. Про остальные ОС на базе Linux ничего сказать не могу.

Запуска консоли в MacOS: сам я таким не занимался, т.к. Мак-ом ещё не обзавёлся и вряд ли обзаведусь за ненадобностью, но, насколько мне удалось узнать, «горячих клавиш» для вызова терминала в этой ОС нет. Так что если вы являетесь пользователем «яблочной» продукции, то запустите консоль через интерфейс ОС, благо, что мануалов в сети много.

Немного стыдно даже такую информацию публиковать на случай, если на данную статью случайно набредёт какой-то профессиональный системный администратор с бородатым опытом, т.к. он подумает: «Автор считает своих читателей программистами, но при этом учит запускать консоль… Псих какой-то :-)».

Да, вполне логично 🙂 Но я просто учитываю ситуации, что наряду с профессиональными разработчиками сюда могут попасть и новички. Поэтому я и стараюсь делать информацию полной и доступной для всех категорий пользователей, о чём уже говорил.

Основные команды консоли MySQL

Итак, первым делом, нам нужно получить доступ к MySQL командной строке в консоли. Для этого открываем консоль сервера и, если у вас MySQL установлен глобально в виде сервиса, то для «проверки связи» прописываем следующее:

mysql -V

Консольная команда mysql позволяет нам запустить одноименную утилиту, являющуюся командной строкой MySQL.

Это позволит нам узнать версию MySQL, установленного на компьютере и убедиться, что он вообще установлен как служба. Если это так, то в ответ в консоли вы увидите примерно следующий текст: mysql Ver 14.14 Distrib 5.7.16, for Win64 (x86_64).

Да, я не «трушный кодер», потому что сижу под Виндой 🙂 Но, не суть. На Unix системах процедура будет такой же.

Если же вдруг MySQL у вас не установлен глобально на компьютере или у вас есть необходимость работы с несколькими версиями MySQL, при которой есть только каталоги с файлами и библиотеками MySQL, то запуск MySQL через консоль будет выглядеть следующим образом.

В консоли переходим в каталог, где находится исполняемый файл MySQL (на Windows, по крайней мере, это mysql.exe) следующей командой:

cd C:OpenServermodulesdatabaseMySQL-5.7-x64bin

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

И запускаем MySQL, проверяя попутно его версию:

mysql.exe -V

В результате в консоль должно было вывестись аналогичное первому случаю сообщение mysql Ver 14.14 Distrib 5.7.16, for Win64 (x86_64).

Всё, с запуском MySQL командной строки через консоль сервера разобрались, теперь будем подключаться непосредственно к серверу MySQL.

Подключение к серверу MySQL в консоли

Cервер MySQL может не обязательно находиться на той же машине, на которой вы пытаетесь получить к нему доступ в консоли. Следовательно, для того, чтобы подключение к удалённому серверу MySQL через консоль было возможно, утилита mysql имеет множество параметров, с помощью которых можно указывать необходимые настройки.

Для того, чтобы запустить командную строку MySQL в консоли, нам достаточно прописать в консоли сервера следующее:

mysql

Однако, в таком случае вы получите следующую ошибку: ERROR 1045 (28000): Access denied for user ‘ODBC’@’localhost’ (using password: NO). Так сообщение об ошибке выглядит у меня на Windows. Если же вы используете Linux, то вместо ODBC будет имя вашего системного пользователя, под которым вы совершаете действия в системе.

Всё это потому, что по умолчанию при подключении к MySQL серверу в консоли используется пользователь ODBC на Windows без пароля и системный юзер на Linux с его же паролем. Хост по умолчанию localhost, т.е. данный пользователь может подключаться только с локальной машины.

Поэтому выхода у вас два: либо использовать другого пользователя для входа в командную строку MySQL, либо создать пользователя MySQL с нужной учёткой. Но для второго способа нам без первого всё равно не обойтись 🙂 Поэтому для начала подключаемся к серверу MySQL под стандартным пользователем root, который создаётся при установке MySQL на компьютер и для которого по умолчанию разрешён доступ с localhost:

mysql -u root -p

При требовании ввести пароль просто нажимаем Enter (если вы его не вводили, конечно, при установке MySQL). После этого вы будете подключены к серверу MySQL с присвоением вам идентификатора подключения и получением доступа к командной строке MySQL.

Если же вы захотите подключиться к серверу MySQL, имеющему специфическое имя хоста или IP или захотите залогиниться под другим пользователем, то используйте команду следующего формата:

mysql -u имя_пользователя -p пароль_пользователя -h хост_или_IP_сервера_MySQL

Вместо кириллических символов с подчёркиванием, естественно, нужно ввести свои данные латинницей. Кстати, данную команду при желании можете прописать немного в другом формате:

mysql --user=имя_пользователя --password=пароль_пользователя --host=хост_или_IP_сервера_MySQL

Если по какой-то причине вы не хотите, чтобы ваш пароль подключения к MySQL отображался в консоли (что правильно, на самом деле), можете использовать следующую команду:

mysql -u имя_пользователя -h хост_или_IP_сервера_MySQL -p

Поскольку пароль не указан явно, вам будет предложено его ввести на следующем шаге. Причём, введённые вами символы отображены не будут даже в виде звёздочек (wildcards), вместо этого будет просто пустая строка.

Помимо указанных настроек подключения возможно использовать следующие параметры, значения которым будут указываться аналогичным с вышеперечисленными образом:

  1. —port или -P — для указания порта подключения к серверу MySQL;
  2. —protocol — протокол, по которому будет осуществляться подключение (возможные варианты: TCP для Windows и Linux, SOCKET для Linux, PIPE и MEMORY для Windows);
  3. —socket или -S — данный параметр пригодится, если вы захотите подключаться через сокеты, следовательно, значение параметра будет сокет;
  4. —pipe или -W — параметр нужен, если вы захотите использовать именованные «трубопроводы» или «пайпы» для подключения;
  5. —shared-memory-base-name — этот параметр вам пригодится для MEMORY подключений через общую память на Windows;

Понятное дело, что на этом список всех параметров подключения к MySQL серверу не ограничивается. В реальности их намного больше.

Если по какой-то причине стандартный вариант с указанием хоста, пользователя и пароля вам не подойдёт, то для выяснения полного перечня параметров подключения вам будет полезна следующая информация — https://dev.mysql.com/doc/refman/5.7/en/connecting.html

Как создать базу данных в MySQL консоли

После того, как мы подключились к серверу MySQL и запустили командную строку MySQL, время начать жизненный цикл нашей базы данных сайта, который стартует с её создания. Для создания базы данных MySQL через командную строку нужно ввести следующую команду:

CREATE DATABASE имя_базы_данных;

То же самое действие можно сделать и с помощью специальной MySQL утилиты mysqladmin. Запускается она изолированно от командной строки MySQL, т.е. для её использования вам нужно будет выйти из неё или открыть новую консоль сервера.

А затем вызвать следующую команду:

mysqladmin create имя_базы_данных;

К слову, с помощью утилиты mysqladmin можно не только создавать и удалять базы данных, не заходя в консоль MySQL, но и оперировать серверной конфигурацией, процессами MySQL, управлять репликациями, пинговать сервера и делать ещё много всего интересного.

Более подробно о mysqladmin можете прочитать здесь — https://dev.mysql.com/doc/refman/5.7/en/mysqladmin.html

Как создать пользователя MySQL в командной строке

Не часто, но иногда требуется создать нового пользователя MySQL. Причём, в консольном режиме.

В командной строке MySQL это делается следующим образом:

CREATE USER 'имя_пользователя'@'хост_или_IP_машины' IDENTIFIED BY 'пароль_пользователя';

Пользователь создан. Параметр хост_или_IP_машины означает, что при создании пользователя нужно указывать IP, с которого он сможет подключаться к серверу, или имя хоста (подойдёт доменное имя рабочей машины в сети).

Кстати, при указании хоста для подключения к MySQL серверу можно использовать символ процента — %, который означает, что создаваемый пользователь может соединяться с сервером MySQL с любого IP адреса или хоста.

При этом нужно учитывать, что в данном случае localhost не входит в список адресов, указываемых с помощью %, т.к. localhost обозначает подключение через UNIX сокет вместо стандартного TCP/IP. Т.е. если созданный пользователь MySQL будет подключаться к серверу не с помощью сокетов, а по другому протоколу, указываемому при соединении с MySQL сервером в консоли, то ему нужно будет создавать две учётные записи пользователя:

CREATE USER 'имя_пользователя'@'%' IDENTIFIED BY 'password';
CREATE USER 'имя_пользователя'@'localhost' IDENTIFIED BY 'password';

С созданием пользователя MySQL в консоли мы разобрались. Теперь зададим права пользователя для выполнения любых действий с нашей только что созданной базой данных следующей командой:

GRANT ALL PRIVILEGES ON имя_базы_данных.* TO 'имя_пользователя'@'хост_или_IP_машины';

Опция ALL, как вы поняли, как раз и указывает на то, что пользователю разрешаются любые действия с определённой БД. Полный список прав, которые можно выдавать пользователям с помощью команды GRANT, можно найти здесь (правда, описание параметров на английском) — https://dev.mysql.com/doc/refman/5.7/en/grant.html#grant-privileges

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

Если захотите создать суперюзера, т.е. обладающего глобальными привилегиями для осуществления различных действий со всеми БД на сервере, то используйте следующий вызов команды:

GRANT ALL ON *.* TO 'имя_пользователя'@'хост_или_IP_машины';

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

FLUSH PRIVILEGES;

А если захотите поменять права пользователя, то используйте сначала следующую команду чтобы сбросить все права:

REVOKE ALL PRIVILEGES ON *.* FROM 'имя_пользователя'@'хост_или_IP_машины';

А затем установите ему нужные с помощью GRANT, как это было описано ранее.

Если же вам в будущем потребуется изменить пароль пользователя MySQL, то для этого достаточно выполнить в MySQL Shell следующие команды:

SET PASSWORD FOR 'имя_пользователя'@'хост_или_IP_машины' = PASSWORD('новый_пароль');

FLUSH PRIVILEGES;

Сброс кэша привилегий MySQL сервера нужен с той же целью, что и при смене прав — без этого действия смена пароля пользователя MySQL может быть не засчитана, поэтому не ленитесь пользоваться 🙂

В Интернете, кстати, полно примеров использования следующей команды для сброса пароля MySQL пользователя:

UPDATE mysql.user SET Password=PASSWORD('пароль') WHERE User='имя_пользователя';

Но у меня на MySQL 5.7 данный вариант не сработал, выдав ошибку ERROR 1054 (42S22): Unknown column ‘Password’ in ‘field list’. Её причина оказалось отсутствие поля Password в таблице mysql.user.

Из чего можно предположить, что данный вариант работает лишь для старых версий MySQL, где в таблице пользователей данное поле существовало. Поэтому для уверенности используйте мой первый вариант, если вы, конечно не вынуждены работать с допотопным ПО без возможности обновления версий 🙂

На этом создание нового пользователя MySQL и обзор действий с его правами и паролями закончен. Идём далее.

Выбор базы данных при работе с MySQL через командную строку

Теперь, после создания пользователя в MySQL Shell и назначения ему прав на работу с БД нам нужно выбрать эту самую базу, чтобы можно было оперировать самой базой и хранящимися в ней данными.

Для этого используем следующую команду в MySQL консоли:

USE имя_базы_данных;

Если всё прошло успешно, то в консоли выведется сообщение Database changed, что будет сигнализировать о том, что мы выполнили вход в базу MySQL через консоль. Кстати, при соединении с сервером MySQL, изначально можно указывать БД, с которой необходимо будет работать. Для этого нужно прописать следующую команду в консоли сервера:

mysql --user=имя_пользователя --password=пароль_пользователя --host=хост_или_IP_сервера_MySQL --database=имя_базы_данных

Или то же самое, только с запросом ввода пароля пользователя MySQL:

mysql -u имя_пользователя -h хост_или_IP_сервера_MySQL имя_базы_данных -p

На этом всё. Думаю, никаких сложностей с подключением к базе данных MySQL через консоль теперь у вас не возникнет 🙂

Работа с таблицами MySQL через консоль MySQL

Итак, базу данных MySQL через консоль мы создали. Теперь было бы неплохо научиться с ней работать для случая, когда командная строка MySQL будет единственным средством доступа к хранящимся на сервере данным (как это было у меня, о чём я говорил в начале статьи).

Реляционная база данных, как известно, состоит из таблиц, внутри которых уже и хранится информация в виде записей с несколькими полями. Поэтому, следуя по иерархии размещения информации, для начала научимся производить типичные CRUD операции с таблицами.

CRUD операции, если кто-то не в курсе, — это операции по созданию, чтению, обновлению и удалению данных от англ. «Create, Read, Update, Delete» (возможно, на собеседованиях вам такое понадобится).

Напоминаю, что для выполнения действий с таблицами вы должны сперва подключиться к БД MySQL с помощью команды USE.

Итак, первая на повестке у нас команда создания таблицы MySQL в БД через командную строку, которая выглядит так:

CREATE TABLE имя_таблицы (название_поля_1 тип_поля_1, название_поля_2 тип_поля_2(размер_поля_2), INDEX(название_поля_1), ...);

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

Кстати, если вы захотите скопировать таблицу в другую базу данных или просто создать копию в текущей, вам помогут следующие команды:

CREATE TABLE новое_имя_таблицы LIKE старое_имя_таблицы;
INSERT новое_имя_таблицы SELECT * FROM старое_имя_таблицы;

Данные команды позволяют скопировать структуру таблицы и её данные вместе с индексами и триггерами таблиц. Если вам нужны просто данные и структура (имена полей и их типов данных), то можете обойтись вызовом одной команды:

CREATE TABLE новое_имя_таблицы AS SELECT * FROM старое_имя_таблицы;

Следующая операция из блока CRUD у нас чтение. В случае таблиц чтением будет вывод на экран их структуры. Для этого существует следующие четыре команды:

SHOW FULL COLUMNS FROM имя_таблицы;
DESCRIBE имя_таблицы;
EXPLAIN имя_таблицы;
SHOW CREATE TABLE имя_таблицы;

Первая выводит информацию о полях таблицы БД в табличном виде в консоль MySQL с указанием названия поля, типа данных, наличия ключей, значением по умолчанию и т.д. При использовании ключевого слова FULL можно получить расширенную информацию, включая привилегии на каждое из полей для текущего пользователя, комментарии к каждому из них и значение кодировки.

Вторая и третья команды являются просто сокращёнными формами первой команды без расширенной информации. Зачем было их плодить — даже не представляю… Разве что, чтобы было что спросить на собеседованиях при приёме на работу? 🙂

Четвёртая команда, помимо имени, типов полей и значений их по умолчанию позволяет получить значения ключей таблиц, движков таблиц (InnoDB, MyISAM), кодировку и др.

Update операция в случае таблиц представляет собой изменение их структуры, т.е. различные действия с полями таблиц MySQL:

ALTER TABLE имя_таблицы DROP COLUMN название_поля;
ALTER TABLE имя_таблицы ADD COLUMN название_поля VARCHAR(20);
ALTER TABLE имя_таблицы CHANGE старое_название_поля новое_название_поля VARCHAR(50);
ALTER TABLE имя_таблицы MODIFY название_поля VARCHAR(3);

Первая команда позволяет удалить определённое поле таблицы, вторая — добавить, третья позволяет переименовать поле и попутно изменить тип хранимых в нём данных, а четвёртая — изменить исключительно тип данных.

Тоже самое можно делать и с индексами таблиц с помощью во многом похожих команд:

ALTER TABLE имя_таблицы ADD UNIQUE INDEX имя_индекса (название_поля_1, ...);
ALTER TABLE имя_таблицы rename INDEX старое_имя_индекса TO новое_имя_индекса;
ALTER TABLE имя_таблицы DROP INDEX имя_индекса;

Приведённые команды позволяют добавлять, переименовывать и удалять индексы из таблиц MySQL через командную строку. Для добавления и удаления индексов есть, кстати, ещё альтернативный вариант использования самостоятельных команд, а не делать это через ALTER TABLE. Поэтому при желании можете использовать их:

CREATE UNIQUE INDEX имя_индекса (название_поля_1, ...) ON имя_таблицы;
DROP INDEX имя_индекса ON имя_таблицы;

Приведённые команды являются эквивалентами первой и последней из предыдущего блока. Для переименования индекса, к сожалению, отдельной команды не существует. А для изменения типа индекса, к сожалению, вообще нет никакой возможности в MySQL. Единственный выход — удалить индекс и создать его снова с нужным типом.

Ну, и наконец, мы дошли до последней операции из блока CRUD — к удалению. Удалить таблицы MySQL из БД очень просто. Достаточно в консоли MySQL выполнить следующую команду:

DROP TABLE имя_таблицы;

Иногда на практике возникают ситуации, из-за которых не получается удалить таблицу или изменить её структуру. Как правило, это связано с использованием в БД внешних ключей для связи таблиц между собой. С этой ситуацией я лично сталкивался неоднократно, о чём говорил в начале статьи.

Поэтому, если при удалении или обновлении структуры таблицы или её данных MySQL вернул вам ошибку с текстом Cannot delete or update a parent row: a foreign key constraint fails, то следующая информация вам будет как нельзя кстати.

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

Собственно говоря, с данной целью внешние ключи MySQL и нужны.

Итак, для удаления данных, которому мешают внешние ключи необходимо выполнить следующие действия в консоли MySQL:

SET FOREIGN_KEY_CHECKS=0;
#необходимая_mysql_команда
SET FOREIGN_KEY_CHECKS=1;

Кстати, если захотите удалить внешний ключ, то процедура будет такой же, как и при удалении индекса:

ALTER TABLE имя_таблицы DROP FOREIGN KEY имя_внешнего_ключа;

Чтобы узнать имя внешнего ключа MySQL таблицы, используйте уже знакомую команду MySQL консоли SHOW CREATE TABLE.

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

Для таблиц CRUD операции в MySQL консоли мы рассмотрели. Для полной картины данной шпаргалке не хватает только команд для работы с самими данными, хранящимися в таблицах БД. Думаю, многие знают эти команды и пользовались ими на практике, но всё же напомню их ещё раз.

CRUD операции для работы с данными таблиц MySQL будут выглядеть так:

INSERT INTO имя_таблицы (поле1, поле2, ...) VALUES (значение_поля_1, значение_поля_2, ...);
SELECT поле1, поле2, ... FROM имя_таблицы;
UPDATE имя_таблицы SET поле1 = значение_поля_1, поле2 = значение_поля_2;
DELETE FROM имя_таблицы WHERE поле1 = значение_поля_1;

Приведённые выше команды соответствуют операциям создания, чтения, обновления и удаления данных из таблиц БД MySQL. При использовании SELECT и UPDATE также возможно использовать уточняющий оператор WHERE, с помощью которого можно конкретизировать выбор данных способом, описанным в случае использования DELETE.

Также при выборке данных из БД с помощью SELECT можно использовать следующий вариант для получения значений всех полей таблицы:

SELECT * FROM имя_таблицы;

Естественно, что в данных операциях могут использоваться и другие операторы, помимо WHERE. Особенно их много при выборке данных с помощью SELECT: тут и UNION для объединения результатов нескольких запросов, и различные типы JOIN. Все перечислять очень долго и утомительно как для меня, так и для вас будет читать это.

Поэтому давайте договоримся: если вам захочется о чём-то узнать поподробнее — просто напишите об этом в комментариях, и я постараюсь вам ответить. Или же это сделают другие сведущие участники нашего сообщества. Ок? 😉

Так что пока на данном блоке останавливаться не будем.

Если же вам нужно будет удалить все данные из таблицы, то можете воспользоваться следующей MySQL командой:

TRUNCATE имя_таблицы;

Перед её вызовом, как уже ранее и говорилось, вам может потребоваться отключение проверки внешних ключей в случае наличия связанных таблиц MySQL, которая может препятствовать произведению необходимого действия.

Ещё один интересный момент, который здесь нужно учесть, это то, что данная команда не производит сброс счётчика AUTO_INCREMENT, который используется, как известно, для автоматической генерации значения поля без необходимости его ручной установки.

Поля данного типа чаще всего используются для генерации значений главного ключевого поля id, которое используется для установки связей между данными разных таблиц.

Т.е., если до удаления данных таблицы с помощью TRUNCATE максимальное значение счётчика было 1200, то у первой записи после данной процедуры значение идентификатора будет 1201. В принципе, ничего страшного. Если вы задали достаточный размер для данного поля, то переполнение значений вам грозит не скоро.

Однако, в отдельных случаях, когда в коде приложения есть какая-то привязка к значению поля, то данное поведение может доставлять неудобства.

Чтобы этого избежать, используйте вместо команды выше данный вариант:

TRUNCATE TABLE someTable RESTART IDENTITY;

Данный вариант вызова команды TRUNCATE позволит вам сбросить значение счётчика полей с AUTO_INCREMENT. Поэтому значение поля первой добавленной записи после данного удаления будет 1 вместо 1201, как в примере выше.

Как удалить базу данных MySQL через командную строку

Жизненный цикл работы с базой данных подходит к концу и завершается вполне логично — её удалением. Для того, чтобы сделать данную операцию в консоли MySQL, нужно выполнить следующую команду (при этом удаляемая БД может быть и не выбрана командой USE):

DELETE DATABASE имя_базы_данных;

То же самое действие можно сделать и с помощью MySQL утилиты mysqladmin, о которой я уже упоминал в начале статьи при создании БД:

mysqladmin drop имя_базы_данных;

При вызове команды в консоли сервера появится следующее сообщение:

Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the ‘имя_базы_данных’ database [y/N]

Вкратце — это предупреждение о том, что удаление базы данных MySQL — идея очень плохая. Также запрашивается подтверждение действия. Если согласны — пишем y и нажимаем Enter на клавиатуре, после чего на экран выведется следующее сообщение (если всё прошло успешно, конечно же):

Database «имя_базы_данных» dropped

Вот так 🙂

Как удалить пользователя MySQL в консоли

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

Начиная с MySQL 5.7 для обоих этих действий существует одна команда:

DROP USER IF EXISTS имя_пользователя;

В более ранних версиях MySQL требовалось две отдельные команды:

GRANT USAGE ON *.* TO 'имя_пользователя'@'хост_или_IP_адрес';
DROP USER 'имя_пользователя'@'хост_или_IP_адрес';

К сожалению, в данном случае сообщение о выполнении операции в консоли MySQL традиционно малоинформативно 🙁 Поэтому, чтобы узнать, что удаление пользователя пользователь MySQL всё-таки произошло, можно воспользоваться следующей командой, которая выводит на экран список всех существующих на текущем MySQL сервере пользователей:

SELECT User FROM mysql.user;

Данный вариант команды выведет только имена пользователей. Если же вам нужно будет посмотреть хосты, с которых пользователи могут коннектиться к серверу, и список привилегий, то можете вызвать команду в следующем виде:

SELECT User, Host, Grant_priv FROM mysql.user;

Также в таблице mysql.user существует масса других полей, в которых хранятся другие типы привилегий и прочая информация, с полным списком которой можно познакомиться здесь — https://mariadb.com/kb/en/library/mysqluser-table/

Не смущайтесь, что это документация к СУБД MariaDB. Технически это то же самое, что и MySQL, т.к. MariaDB является всего лишь её ответвлением или форком от англ «fork» — ответвление, вилка.

Зачем её было делать — снова без понятия 🙂 Разве что, чтобы всем гордо заявлять, что «у меня своя СУБД»?.. Но о точных мотивах и различиях MySQL и MariaDB я, честно говоря, не сильно в курсе. Поэтому если вы что-то об этом знаете — было бы интересно прочитать об этом в комментариях.

Выход из консоли MySQL

Вот и всё, жизненный цикл БД и пользователя, начавшийся их созданием и завершившийся удалением подошёл к концу. Следовательно, командная строка MySQL, с которой мы работали в консоли сервера с помощью утилиты mysql, нам больше не нужна.

Осталось только выйти из неё…

Казалось бы, действие тривиальное, но многие в ситуации, когда нужно выйти из командной строки MySQL просто закрывают консоль сервера и открывают её снова. Можно, конечно, и так действовать, но это отнимает лишние секунды рабочего времени и заставляет раздражаться каждый раз, когда это сделать необходимо.

Правильным поведением в данной ситуации будет всего лишь вызов команды exit в командной строке MySQL, после чего сервис с нами вежливо попрощается 🙂

vykhod-iz-mysql-v-konsoli

И всего-то 🙂 Так что в следующий раз не нужно плодить консоли и переоткрывать их каждый раз, когда нужно будет выйти из MySQL в консоли и снова получить к ней доступ для управления сервером.

Вот и всё, что я хотел вам сегодня рассказать. Надеюсь, что моя шпаргалка по работе с командной строкой MySQL через консоль пригодится не только мне, но и вам.

Говоря о практическом применении изложенной в статье информации хочется напомнить, что приведёнными конструкциями можно пользоваться не только в командной строке MySQL и консоли сервера, но и в консоли phpMyAdmin и прочего ПО, которое предоставляет такую возможность.

Пользоваться вам ею или нет — ваше дело. Но, как я сказал в самом начале статьи, бывают ситуации, когда использование консоли MySQL может сэкономить ваше время и нервы. А пользоваться ли командной строкой каждый день или нет — дело исключительно вкуса и индивидуальных предпочтений.

Пишите комментариях о том, какие команды вы используете чаще всего. А, возможно, вы знаете ещё какие-то хитрости. В любом случае делитесь своим мнением с остальными и поддерживайте беседы в комментариях других пользователей.

Обещаю, что в процессе вы узнаете много нового, как и я при написании каждой своей статьи 🙂

Если статья вам понравилась, в качестве благодарности можете поделиться ею со своими друзьями в социальных сетях или же помочь проекту материально с помощью формы под статьёй.

На этом всё! Удачи и до новых встреч 🙂

P.S.: если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP, OpenCart, WordPress, Laravel, Yii, MySQL, PostgreSQL, JavaScript, React, Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги, корпоративные сайты, Интернет-магазины, CRM, порталы. В том числе поддержка и разработка HighLoad проектов. Присылайте ваши заявки на email cccpblogcom@gmail.com.

И с друзьями не забудьте поделиться 😉

Contents

  1. About the mysql Command-Line Client
  2. Using mysql
    1. Options
    2. Option Files
      1. Option Groups
  3. How to Specify Which Protocol to Use When Connecting to the mysqld Server
    1. Linux/Unix
    2. Windows
  4. How to Test Which Protocol is Used
  5. mysql Commands
  6. The mysql_history File
  7. prompt Command
  8. mysql Tips
    1. Displaying Query Results Vertically
    2. Using the —safe-updates Option
    3. Disabling mysql Auto-Reconnect
  9. See Also

About the mysql Command-Line Client

mysql (from MariaDB 10.4.6, also called mariadb) is a simple SQL shell (with GNU readline
capabilities). It supports interactive and non-interactive use. When used
interactively, query results are presented in an ASCII-table format. When used
non-interactively (for example, as a filter), the result is presented in
tab-separated format. The output format can be changed using command options.

If you have problems due to insufficient memory for large result sets, use the
--quick option. This forces mysql to retrieve results from
the server a row at a time rather than retrieving the entire result set and
buffering it in memory before displaying it. This is done by returning the
result set using the mysql_use_result() C API function in the
client/server library rather than mysql_store_result().

Using mysql is very easy. Invoke it from the prompt of your command interpreter
as follows:

mysql db_name

Or:

mysql --user=user_name --password=your_password db_name

Then type an SQL statement, end it with “;”, g, or G and press Enter.

Typing Control-C causes mysql to attempt to kill the
current statement. If this cannot be done, or Control-C is typed again before
the statement is killed, mysql exits.

You can execute SQL statements in a script file (batch file) like this:

mysql db_name < script.sql > output.tab

From MariaDB 10.4.6, mariadb is available as a symlink to mysql.

From MariaDB 10.5.2, mysql is the symlink, and mariadb the binary name.

Using mysql

The command to use mysql and the general syntax is:

mysql <options>

Options

mysql supports the following options:

Option Files

In addition to reading options from the command-line, mysql can also read options from option files. If an unknown option is provided to mysql in an option file, then it is ignored.

The following options relate to how MariaDB command-line tools handles option files. They must be given as the first argument on the command-line:

In MariaDB 10.2 and later, mysql is linked with MariaDB Connector/C. However, MariaDB Connector/C does not yet handle the parsing of option files for this client. That is still performed by the server option file parsing code. See MDEV-19035 for more information.

Option Groups

mysql reads options from the following option groups from option files:

How to Specify Which Protocol to Use When Connecting to the mysqld Server

You can force which protocol to be used to connect to the mysqld server by giving the protocol option one of the following values: tcp, socket, pipe or memory.

If protocol is not specified, before MariaDB 10.6.1, command line connection properties that do not force protocol are ignored.

From MariaDB 10.6.1, a connection property specified via the command line (e.g. --port=3306) will force its type. The protocol that matches the respective connection property is used, e.g. a TCP/IP connection is created when --port is specified.

If multiple or no connection properties are specified via the command-line, then the following happens:

Linux/Unix

  • If hostname is not specified or hostname is localhost, then Unix sockets are used.
  • In other cases (hostname is given and it’s not localhost) then a TCP/IP connection through the port option is used.

Note that localhost is a special value. Using 127.0.0.1 is not the same thing. The latter will connect to the mysqld server through TCP/IP.

Windows

  • If shared-memory-base-name is specified and hostname is not specified or hostname is localhost, then the connection will happen through shared memory.
  • If shared-memory-base-name is not specified and hostname is not specified or hostname is localhost, then the connection will happen through windows named pipes.
  • Named pipes will also be used if the libmysql / libmariadb client library detects that the client doesn’t support TCP/IP.
  • In other cases then a TCP/IP connection through the port option is used.

How to Test Which Protocol is Used

The status command shows you information about which protocol is used:

shell> mysql test

Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 10
Server version: 10.2.2-MariaDB-valgrind-max-debug Source distribution

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

MariaDB [test]> status;
--------------
mysql  Ver 15.1 Distrib 10.0.25-MariaDB, for Linux (x86_64) using readline 5.2

Connection id:          10
Current database:       test
Current user:           monty@localhost
...
Connection:             Localhost via UNIX socket
...
UNIX socket:            /tmp/mysql-dbug.sock

mysql Commands

There are also a number of commands that can be run inside the client. Note that all text commands must be first on line and end with ‘;’

The mysql_history File

On Unix, the mysql client writes a record of executed statements to a history
file. By default, this file is named .mysql_history and is created in your home
directory. To specify a different file, set the value of the MYSQL_HISTFILE
environment variable.

The .mysql_history file should be protected with a restrictive access mode because
sensitive information might be written to it, such as the text of SQL
statements that contain passwords.

If you do not want to maintain a history file, first remove .mysql_history if
it exists, and then use either of the following techniques:

  • Set the MYSQL_HISTFILE variable to /dev/null. To cause this setting to take
    effect each time you log in, put the setting in one of your shell’s startup
    files.
  • Create .mysql_history as a symbolic link to /dev/null:
shell> ln -s /dev/null $HOME/.mysql_history

You need do this only once.

prompt Command

The prompt command reconfigures the default prompt N [d]>. The string for defining the prompt can contain the following special sequences.

mysql Tips

This section describes some techniques that can help you use
mysql more effectively.

Displaying Query Results Vertically

Some query results are much more readable when displayed vertically, instead of
in the usual horizontal table format. Queries can be displayed vertically by
terminating the query with G instead of a semicolon. For example, longer text
values that include newlines often are much easier to read with vertical
output:

mysql> SELECT * FROM mails WHERE LENGTH(txt) < 300 LIMIT 300,1G
*************************** 1. row ***************************
  msg_nro: 3068
    date: 2000-03-01 23:29:50
time_zone: +0200
mail_from: Monty
    reply: monty@no.spam.com
  mail_to: "Thimble Smith" <tim@no.spam.com>
      sbj: UTF-8
      txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi.  I think this is a good idea.  Is anyone familiar
Thimble> with UTF-8 or Unicode? Otherwise, I´ll put this on my
Thimble> TODO list and see what happens.
Yes, please do that.
Regards,
Monty
    file: inbox-jani-1
    hash: 190402944
1 row in set (0.09 sec)

Using the —safe-updates Option

For beginners, a useful startup option is --safe-updates (or
--i-am-a-dummy, which has the same effect). It is helpful
for cases when you might have issued a
DELETE FROM tbl_name statement but forgotten the
WHERE clause. Normally, such a statement deletes all rows
from the table. With --safe-updates, you can delete rows
only by specifying the key values that identify them. This helps prevent
accidents.

When you use the --safe-updates option, mysql issues the
following statement when it connects to the MariaDB server:

SET sql_safe_updates=1, sql_select_limit=1000, sql_max_join_size=1000000;

The SET statement has the following effects:

  • You are not allowed to execute an UPDATE or DELETE statement unless you
    specify a key constraint in the WHERE clause or provide a LIMIT clause (or
    both). For example:
UPDATE tbl_name SET not_key_column=val WHERE key_column=val;
UPDATE tbl_name SET not_key_column=val LIMIT 1;
  • The server limits all largeSELECT results to 1,000 rows
    unless the statement includes a LIMIT clause.
  • The server aborts multiple-table SELECT statements that
    probably need to examine more than 1,000,000 row combinations.

To specify limits different from 1,000 and 1,000,000, you can override the
defaults by using the --select_limit and --max_join_size options:

mysql --safe-updates --select_limit=500 --max_join_size=10000

Disabling mysql Auto-Reconnect

If the mysql client loses its connection to the server while sending a
statement, it immediately and automatically tries to reconnect once to the
server and send the statement again. However, even if mysql succeeds in
reconnecting, your first connection has ended and all your previous session
objects and settings are lost: temporary tables, the autocommit mode, and
user-defined and session variables. Also, any current transaction rolls back.
This behavior may be dangerous for you, as in the following example where the
server was shut down and restarted between the first and second statements
without you knowing it:

mysql> SET @a=1;
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO t VALUES(@a);
ERROR 2006: MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    1
Current database: test
Query OK, 1 row affected (1.30 sec)
mysql> SELECT * FROM t;
+------+
| a    |
+------+
| NULL |
+------+

The @a user variable has been lost with the connection, and after the
reconnection it is undefined. If it is important to have mysql terminate with
an error if the connection has been lost, you can start the mysql client with
the --skip-reconnect option.

See Also

  • Troubleshooting Connection Issues
  • Readline commands and configuration

I’m trying to connect to mysql server command line from my windows prompt

I write the next line in cmd but i get an error.

cd C:MYSQLbin

And then i execute

mysql.exe -u=root -p=admin

but i getting this error

ERROR 1045: <28000>: Access denied for user 'root'@'localhost' <using password:YES>

Thanks,

asked Dec 6, 2012 at 20:57

Washu's user avatar

WashuWashu

8351 gold badge9 silver badges20 bronze badges

1

The cd in your question is invalid (quoting it here because you’ve removed it once, and it was there when this answer was posted):

cd CD:MYSQLbin

You can’t cd to CD: anything, because CD: isn’t a valid directory in Windows. CD: would indicate a drive, except that drives are restricted to a single letter between A and Z.

If your MYSQLBIN is on drive C:, then your commands need to be:

C:>cd MYSQLBin
C:MYSQLBin>mysql -u root -p admin

If you’re not already on C: (which you’ll know by looking at the prompt in the cmd window), or your MySQL folder is on another drive (for instance, D:), change to that drive too:

C:> cd /d D:MYSQLBin
D:MYSQLBin>mysql -u root -p admin

The .exe after mysql is optional, since .exe is an executable extension on Windows. If you type mysql, Windows will automatically look for an executable file with that name and run it if it finds it.

Note that in both my examples of running mysql, there are no = signs. You should just use -p with no password, and wait to be prompted for it instead.

answered Dec 6, 2012 at 21:07

Ken White's user avatar

Ken WhiteKen White

122k14 gold badges220 silver badges437 bronze badges

0

Use this :

mysql -u user_name -p  then press_enter_key

then type password

i.e.

line-1 : mysql -u root -p

line-2 : admin

Code Lღver's user avatar

Code Lღver

15.5k16 gold badges56 silver badges75 bronze badges

answered Dec 6, 2012 at 21:15

Raghvendra Parashar's user avatar

1

C:Program FilesMySQLMySQL Server 5.7bin> mysql -u username -p

Then it will ask for the password.
Enter the password you set for the username during installation while adding db Users.
In the given image depp is my username

answered Jul 3, 2018 at 18:17

Ramandeep Singh's user avatar

first type cmd then the windows command prompt will appear:

PATH C:XAMPPMYSQLBIN;%PATH%;
mysql -u root -p

where:

  • -u is the user id
  • -p is the password, if you will not using a password just leave it blank.

Wilq's user avatar

Wilq

2,2454 gold badges34 silver badges37 bronze badges

answered Jan 31, 2015 at 15:49

Paul Q. Alvarez's user avatar

1

  1. Start your MySQL server service from MySQL home directory. Your one is C:MYSQLbin so choose this directory in command line and type:

    NET START MySQL


    (After that you can open Windows Task Manager and verify in Processes tab is

    mysqld.exe

    process running. Maybe your problem is here.)

  2. Type:

    mysql -u


    user


    -p

    [pressEnter]

  3. Type your

    password

    [pressEnter]

or make a start.bat file:

  1. add C:MYSQLbin to your PATH

  2. write a start.bat file

  3. My start.bat file has only two lines like below:

    net start MySQL


    mysql -u root -p


Good luck!

lfurini's user avatar

lfurini

3,6074 gold badges34 silver badges47 bronze badges

answered May 30, 2014 at 17:44

Tomasz's user avatar

Please perform the following steps

  1. First, open your command prompt with Administrator.
  2. Go to MySQL installed directory and copy path and past on command prompt
    like:- C:Program FilesMySQLMySQL Server 5.7bin>

  3. C:Program FilesMySQLMySQL Server 5.7bin>mysql -uroot -p [-u for username -p for password]

  4. C:Program FilesMySQLMySQL Server 5.7bin>mysql -uroot -p
    Enter password: **** [enter your password here]

1 first image

Siong Thye Goh's user avatar

answered May 29, 2019 at 15:10

Ravindra Kumar's user avatar

To make it easier to invoke MySQL programs, you can add the path name of the MySQL bin directory to your Windows system PATH environment variable:

On the Windows desktop, right-click the My Computer icon, and select Properties.

Next select the Advanced tab from the System Properties menu that appears, and click the Environment Variables button.

Under System Variables, select Path, and then click the Edit button. The Edit System Variable dialogue should appear.

Place your cursor at the end of the text appearing in the space marked Variable Value. (Use the End key to ensure that your cursor is positioned at the very end of the text in this space.) Then enter the complete path name of your MySQL bin directory (for example, C:Program FilesMySQLMySQL Server 8.0bin).

Open a different terminal and if you are using root as user run mysql -u root -p else use the a different username you created.

answered Sep 16, 2020 at 13:55

Philip Mutua's user avatar

Philip MutuaPhilip Mutua

5,62811 gold badges36 silver badges77 bronze badges

Simply to login mysql in windows, if you know your username and password.

Open your command prompt, for me the username is root and password is password

mysql -u root -p
Enter password: ********

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.11-log MySQL Community Server (GPL)

Hope it would help many one.

answered Apr 15, 2018 at 14:43

ArifMustafa's user avatar

ArifMustafaArifMustafa

4,4735 gold badges41 silver badges47 bronze badges

7

I have used following command to connect MySQL Server 8.0 in Windows command prompt.

C:Program FilesMySQLMySQL Server 8.0bin>mysql -u root -p my_db
Enter password: ****

or

C:Program FilesMySQLMySQL Server 8.0bin>mysql -u root -p my_db -h localhost
Enter password: ****

Here my_db is schema name.

enter image description here

answered May 1, 2018 at 13:20

Prashant Sahoo's user avatar

First jump to the mysql bin directory. You have two ways to connect

1) mysql -u root -p1234
(without space for password flag)
2) mysql -u root -p
and enter the password when it is asking

answered Aug 21, 2019 at 6:39

S.Roshanth's user avatar

S.RoshanthS.Roshanth

1,4893 gold badges24 silver badges36 bronze badges

If you’re not on exact root of C:/ drive then first of all use cd../.. and then use query mysql -u username -p passsword

using the above lines you can access to mysql database.

answered Dec 23, 2020 at 10:02

Anuj Gupta's user avatar

Following commands will connect to any MySQL database

shell> mysql --host=localhost --user=myname --password=mypass mydb

or

shell> mysql -h localhost -u myname -pmypass mydb

Since it shows the password in plain text, you can type password later as prompted. So, the command will be as follows

shell> mysql --host=localhost --user=myname --password mydb
shell> mysql -h localhost -u myname -p mydb

Ponnarasu's user avatar

Ponnarasu

6351 gold badge11 silver badges24 bronze badges

answered Dec 27, 2016 at 7:12

Mohammad Selim Miah's user avatar

Your have to go on mysql installed path is on drive C:, then your commands need to be:

C:Program FilesMySQLMySQL Server 5.7bin>mysql.exe -u root -p

OR

C:>cd MYSQLBin
C:MYSQLBin>mysql -u root -p

That will ask your MySql password over command prompt:

Enter password: ******

Put the password and you will get mysql dashboard.

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 4622
Server version: 5.7.14-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql>

answered Apr 29, 2017 at 10:31

Ashish Gupta's user avatar

Ashish GuptaAshish Gupta

1,11511 silver badges13 bronze badges

Go to your MySQL directory. As in my case its…

cd C:Program FilesMySQLMySQL Server 8.0bin
mysql -uroot -p

root can be changed to your user whatever MySQL user you’ve set.

It will ask for your password. If you have a password, Type your password and press «Enter», If no password set just press Enter without typing. You will be connected to MySQL.

There is another way to directly connect to MySQL without every time, going to the directory and typing down the commands.

Create a .bat file.
First, add your path to MySQL. In my case it was,

cd C:Program FilesMySQLMySQL Server 8.0bin

Then add these two lines

net start MySQL 
mysql -u root -p

If you don’t want to type password every time you can simply add password with -p e.g. -proot (in case root was the password) but that is not recommended.

Also, If you want to connect to other host than local (staging/production server). You can also add -h22.345.80.09 E.g. 22.345.80.09 is your server ip.

net start MySQL 
mysql -u root -p -h22.345.80.0

Save the file. Just double click to open and connect directly to MySQL.

answered Jun 2, 2018 at 21:12

Syed Ehtsham Abbas's user avatar

syntax to open mysql on window terminal as:

mysql -u -p

e.g.
mysql -uroot -proot

where:
-u followed by username of your database , which you provided at the time of installatin and
-p followed by password

Assumption: Assuming that mysql bin already included in path environment variable. if not included in path you can go till mysql bin folder and then run above command. if you want to know how to set path environment variable

answered Jul 20, 2017 at 8:51

ranjeet jha's user avatar

If you don’t want to go to bin folder of MySQL then another option is to put a shortcut of mysql.exe to your default path of command prompt (C:Users"your user name">) with the contents of:

mysql -u(username) -p(password)

James's user avatar

James

5,1275 gold badges39 silver badges80 bronze badges

answered Dec 11, 2014 at 10:51

ARVIND SHAH's user avatar

0

Небольшая памятка по работе с сервером MySQL из командной строки.

Получить информацию об установленной версии MySQL

mysql -V

Для подключения к mysql в консоли наберите команду

mysql -h you_sql_server -u user_name -p
  • h — хост c MySQL. Если подключаемся с локальной машины, параметр можно опустить
  • u — имя пользователя MySQL (root или другой пользователь MySQL)
  • p — пароль, который будет предложено ввести после нажатия enter

Приглашение командной строки изменится, это значит, сервер MySQL ждёт от вас команд.

mysql>

Запросы должны оканчиваться точкой с запятой. Длинные запросы удобно разбивать enter-ом для перехода на новую строку, а после полного написания запроса поставить точку с запятой и выполнить его.

Для отключения от MySQL нужно написать exit или (в unix-системах) нажать комбинацию клавиш ctrl+с.

Для вывода всех баз данных на сервере используйте команду show databases.

SHOW DATABASES;

Выберите нужную базу данных командой use.

USE db_name;

Теперь можно вводить запросы.

Чтобы подключиться к MySQL и сразу выбрать нужную базу

mysql -u user_name -h host_name db_name -p

Полезные команды MySQL

Показать все таблицы выбранной базы данных в текущей БД.

SHOW TABLES;

Показать все таблицы базы данных db_name.

SHOW TABLES FROM db_name;

Показать список столбцов в таблице table_name в текущей БД

SHOW COLUMNS FROM table_name;

Показать список столбцов в таблице table_name из БД db_name

SHOW COLUMNS FROM table_name FROM db_name;

Вывести структуру нужной таблицы

DESCRIBE table_name;

Показать структуру таблицы, будет выведен sql-запрос на её создание через «CREATE TABLE».

SHOW CREATE TABLE table_name;

Вывести значения системных переменных.

SHOW VARIABLES;

Показать список выполняющихся в настоящий момент запросов.

SHOW PROCESSLIST;

Общая статистика MySQL.

SHOW STATUS;

Статистика по всем таблицам в базе db_name.

SHOW TABLE STATUS FROM db_name;

Что бы выполнять запросы к MySQL из консоли, не всегда требуется предварительно подключаться к mysql. Параметр -e позволяет исполнить команду, вывести результат на экран, после чего отключиться от сервера MySQL. Например, можно вывести список таблиц базы данных.

mysql -uroot -e 'SHOW TABLES' db_name && echo done

Управление базами данных

Создание базы данных из консоли сервера

$ mysqladmin -u root -p create db_name

Удаление базы данных из консоли сервера

mysqladmin -u root -p drop db_name

Создание базы данных db_name из консоли MySQL

CREATE DATABASE db_name COLLATE utf8_general_ci;

Удаление базы данных db_name из консоли MySQL

DELETE DATABASE db_name;

Замена в поле одной подстроки на другую

UPDATE table SET field=replace(field,'original string','new string');

Работа с пользователями

Вывести список пользователей

SELECT User,Host FROM mysql.user;

Показать список прав пользователя user

SHOW GRANTS FOR user_name FROM db_name;

Создать нового пользователя

CREATE USER 'user'@'host' IDENTIFIED BY'password';

host — здесь имя хоста, доменное имя или ip адрес, с которого пользователь сможет подключаться к серверу, например user@localhost.

Чтобы создаваемый пользователь смог подключаться к серверу MySQL с любого IP адреса или хоста (за исключением localhost), можно использовать символ процента, вот так

CREATE USER 'user'@'%' IDENTIFIED BY 'password';

Чтобы разрешрешить пользователю подключаться вообще со всех хостов, придётся создать для него две учётные записи.

CREATE USER 'user'@'%' IDENTIFIED BY 'password';
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';

Добавить указанные привилегии для таблиц БД db_name пользователю user@localhost

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX 
ON db_name.* TO 'user'@'localhost';

Чтобы изменить права пользователю, иногда удобно сначала сбросить все права

REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'localhost';

А затем установить нужные с помощью GRANT, как было показано выше.

Добавить все привилегии для таблиц БД db_name пользователю user@localhost

GRANT ALL PRIVILEGES ON db_name.* TO 'user'@'localhost';

Удаление привилегий пользователя user@localhost для БД db_name:

REVOKEALLON db_name.* FROM 'user'@'localhost';

Сделать из пользователя суперпользователя и дать полный доступ ко всем БД на сервере

GRANT ALL ON *.* TO 'user'@'localhost';

Удалить пользователя user@localhost

DROP USER user@localhost;

Перезагрузить привилегии

FLUSH PRIVILEGES;

Изменить пароль пользователя в консоли MySQL

SET PASSWORD FOR 'user'@'localhost' = PASSWORD('new_password');

FLUSH PRIVILEGES;

или так

UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='user_name';
FLUSH PRIVILEGES;
service mysqld restart;

Установить пароль для пользователя user в консоли сервера.

$ mysqladmin -uuser_name password'password'

Исправление и оптимизация баз данных в MySQL

Чтобы исправить ошибки в поврежденной таблице, в консоли MySQL выполните:

> REPAIR TABLE table_name;

Если же в БД много поврежденных таблиц можно воспользоваться командой mysqlcheck.

Проверить db_name на ошибки.

$ mysqlcheck -p db_name

Восстановление и оптимизация всех БД

$ mysqlcheck -Aor -p

Аргументы:

  • p – использовать пароль
  • -A, —all-databases – проверять все базы данных
  • -o, —optimize – оптимизировать
  • -r, —repair – восстанавливать повреждённые
  • —auto-repair – автоматическое восстановление

Бэкап MySQL из командной строки

Экспорт базы MySQL

$ mysqldump -u username -p db_name > dump.sql

Дамп нескольких баз

$ mysqldump -u username -p -B db_name1 db_name2 > dump.sql

Дамп всех баз на сервере

$ mysqldump -u username -p -A > dump.sql

Дамп только структуры базы, без данных

$ mysqldump -u username -p --no-data db_name > database.sql

Дамп структуры одной таблицы mysql, без данных:

$ mysqldump -u username -p -h host db_name table_name --no-data > /path/dump.sql

Развернуть базу данных MySQL из дампа

$ mysql -u username -p db_name < dump_to_restore.sql

Клонирование таблиц

Скопировать структуру и ключи таблицы, без копирования данных.

CREATE TABLE NEW_TableName LIKE OLD_TableName

Клонировать таблицы базы данных со всеми данными.

CREATE TABLE NEW_TableNameSELECT *FROM OLD_TableName

или

CREATE TABLE NEW_TableName
LIKE OLD_TableName
INSERT INTO NEW_TableName
SELECT *
FROM OLD_TableName;

На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Introduction

MySQL is a popular and open-source relational database application. Therefore, many servers make use of MySQL. The way you access the database depends on the operating system from which you are working.

This guide walks you through using the Windows Command line to connect to a MySQL database.

how to connect to mysql from windows command line

Prerequisites

  • A Windows-based system with an administrator account
  • A local installation of MySQL
  • Notepad text editor (optional)

Step 1: How to Open a Windows Command Prompt

Start by opening the Run command box in Windows. Use the keyboard shortcut – hold the Windows (super) key and press the letter R (Win+R).

Then, type in cmd and press Enter. This command opens the Windows command line.

open windows command prompt

A black command line interface should launch, with white text and a cursor for you to type.

windows command line interface

Step 2: Verify MySQL is Running on Windows

Next, run the command to display a list of all the services that are currently running. Enter the following in the command prompt:

net start
net start windows command line

If MySQL is not on the list, you can start it using the Services panel. Enter the following command:

services.msc

A new window will launch and display the list of services available on your system. Scroll down to find MySQL, and check the status column. Left-click the MySQL service to highlight it, then right-click to open a context menu. Finally, left-click on start.

Step 3: Connect to a Local MySQL Server

First, start MySQL in Windows using the following command:

mysql.exe -u[username] -p

Replace [username] with the username for your MySQL installation.

Enter mysql.exe -uroot -p, and MySQL will launch using the root user.

MySQL will prompt you for your password. Enter the password from the user account you specified with the –u tag, and you’ll connect to the MySQL server.

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.11-log MySQL Community Server (GPL)

The command prompt changes to look like this:

mysql>

Change to the MySQL folder, use the cd command:

cd c:Program FilesMySQL

The command prompt should change to mysql> letting you know you’re currently in the MySQL folder.

To list the contents of this folder:

dir

This lists the contents of the current folder. One of the folders will display the version number of your MySQL installation.

For example, if you’ve installed MySQL 5.5, you should see a folder named “MySQL Server 5.5”.

Step: 4 Create Windows Shortcut to Login to MySQL

  1. To create a shortcut in Windows, enter the following in the command line:
notepad
  1. Open the Windows Notepad text editor with the command:
cmd /K “C:Program FilesMySQLMySQL Server X.Xbinmysql.exe” -uroot -ppassword

Replace -uroot with -u[username] if you have a different username, and -ppassword with -p[YourActualPassword].

Also, make sure you change the path from MySQL Server X.X to the actual folder location.

  1. Now, press Ctrl-S to launch a Save dialog.
  1. Then, type “mysql.bat” in the name field, and change the location to your desktop (or another place that’s easy to find).

This creates a small Windows executable file that you can double-click to log into MySQL using the specified username and password.

Conclusion

With the help of this simple guide, you should be able to connect to a MySQL database using the Windows command prompt. Once you’ve logged into the MySQL server, the commands will be the same regardless of what kind of system you’re running on.

If you are searching for an alternative, terminal-based solution, try out using PostgreSQL from command line.

Последнее обновление: 04.06.2021

При установке сервера MySQL также устанавливается консольный клиент для работы с базами данных. Например, в Windows в меню Пуск можно найти
программу MySQL 8.0 Command Line Client. Это и есть собственно консольный клиент:

MySQL 8.0 Command Line Client

Причем клиент устанавливается сразу в двух вариантах — с поддержкой Unicode и без.

Запустим MySQL 8.0 Command Line Client — Unicode. Вначале нам отобразится предложение ввести пароль:

Ввод пароля в MySQL Command Line Client

Здесь необходимо ввести пароль, который был установлен при установке MySQL для пользователя root.
И после удачного подключения можно будет отправлять серверу команды через данный консольный клиент.

Для начала посмотрим, какие базы данные есть на сервере по умолчанию. Для этого введем команду show databases;

Show databases в MySQL

После выполнения этой команды мы увидим, что на сервере по умолчанию уже есть ряд баз данных, которые выполняют административные функции.

Теперь создадим базу данных с помощью следующей команды языка SQL:

Для создания базы данных применяется команда create database, после которой указывается название бд. То есть в
данном случае база данных будет называться «test».

Чтобы обращаться к какой-нибудь определенной базе данных, вначале надо установить нужную базу данных в качестве текущей.
Для этого нужно выполнить команду use, после которой указывается название базы данных. Например, для подключения ранее созданной базы данных
test введем следующую команду:

Затем создадим в этой базе данных таблицу с помощью команды:

create table users (id integer auto_increment primary key, name varchar(30), age integer);

Данная команда создает таблицу users, в которой будет три столбца — id, name и age. id будет хранить уникальный числовой идентификатор пользователя
и будет автоматически генерироваться базой данных, name будет хранить имя пользователя, а age — его возраст.

Создание базы данных и таблицы в MySQL Command Line Client

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

insert into users (name, age) values ('Tom', 34);

И в конце получим добавленные данные:

Консольный клиент MySQL Command Line Client

Таким образом в общих чертах мы можем работать с консольным клиентом MySQL Command Line Client.

Понравилась статья? Поделить с друзьями:

Вот еще несколько интересных статей:

  • Как открыть контроль учетных записей в windows 7
  • Как открыть консоль iis windows 10
  • Как открыть контекстное меню рабочего стола windows применяемая команда
  • Как открыть консоль cmd на windows 10
  • Как открыть конструктор в windows form

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии