MySQL консоль

Здравствуйте, уважаемые читатель блога LifeExample, настало время изменить привычному phpMyAdmin, с более брутальным инструментом для управления базой данных. Сегодня мы пощупаем MySQL консоль и научимся выполнять стандартные команды, а также команды по восстановлению баз данных. MySQL консоль – это стандартная СУБД (Система управления базами данных) для MySQL, поставляемая вместе с продуктом.
Когда может пригодиться MySQL консоль
С точки зрения начинающего web-программиста, phpMyAdmin выполняет все необходимые для нормальной работы функции. Представьте, что вы не только web-программист, но и, от части, системный администратор, который обязан восстановить БД после сбоя.
В этом случает без навыков работы с MySQL консолью, вам не обойтись. Чуть позже мы рассмотрим команды для восстановления базы с помощью консоли, ну а пока начнем с азов.
Как запустить MySQL консоль
Запустить консоль можно через проводник windows, найдя в папке с MySQL утилиту mysql.exe . Обычно она находится по адресу: [путь до папки]\mysql\bin\mysql.exe . В случае использования денвера, MySQL консоль, стоит искать в этом направлении:
C:\WebServer\usr\local\mysql\bin\mysql.exe
Кроме проводника windows, можно использовать командную строку:
- Запустите cmd.exe
- Напишите полный путь до файла mysql.exe
- Нажмите enter
Вы должны наблюдать такую картину:

Ошибка говорит о том, что для запуска консоли mysql необходимо ввести логин и пароль пользователя. При работе с денвером, стандартным пользователем базы является root с пустым паролем.
Выполните туже команду с добавочными параметрами, указывающими данные для авторизации.
C:\WebServer\usr\local\mysql-5.1\bin\mysql.exe –u root –p

Если все сделано верно, вы получите сообщение «Добро пожаловать в MySQL консоль…«
Убедиться в том, что вы успешно подключены к серверу БД, можно введя команду show databases; . В результате ее выполнения будет выведен перечень присутствующих баз данных на сервере.
Попробуем выбрать одну из БД и посмотреть список таблиц в ней:
use test; show tables;
В моем примере я обращаюсь к базе test , если у вас такой не существует, обратитесь к любой другой из имеющихся.

В качестве эксперимента вы можете попробовать создать базу 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;

Ну и в завершение знакомства с консолью MySQL, выполним какой-нибудь запрос:
SELECT * FROM test.order;

Итак, уважаемые читатели, я вас поздравляю, теперь вы можете работать с 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 — залить бд;
- 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 ленту блога.
ZEROLAB
Мне часто друзья задают те или иные вопросы по администрированию и я подумал, почему бы вместо того, чтобы объяснять по 100 раз одно и то же, не писать такие статьи-заметки на сайте? К тому же, это прекрасная возможность в случае чего самому воспользоваться такой заметкой, ведь Вы сами знаете, удержать в голове порой всё не возможно и так или иначе иногда приходится обращаться к настольной книге, так пусть такой книгой станет один из разделов этого сайта. Сегодня мы поговорим о том, как работать с СУБД MySQL из командной строки, да, кто-то скажет — «Накой? Ведь есть phpMyAdmin», отвечаю — зачем тратить драгоценные ресурсы сервера, устанавливая всякую дрянь по типу WebMin, phpMyAdmin и т.п., если всё тоже самое легко можно проделать надёжными, проверенными средствами. Настройка из терминала по SSH-туннелю — наш выбор!
Что ж, приступим. Соединяемся с сервером по SSH, к примеру через всеми известный PuTTY (A Free Telnet/SSH Client). Теперь перейдём непосредственно к описанию команд.
Вход на сервер MySQL программой mysql:
mysql -u root -h localhost -p
Параметр -u указывает пользователя, который будет входить в систему. Параметр -h указывает узел сети. Обычно это localhost, если вы настраиваете не удаленный сервер. Наконец, -p сообщает программе-клиенту mysql, что для доступа к базе данных будет вводиться пароль. Обратите внимание на приглашение mysql>. Именно здесь вы будете вводить все свои команды. Теперь, находясь в среде mysql в качестве корневого пользователя, мы можем начать настройку базы данных.
Мы вошли, и на экране — приглашение mysql. Сначала взглянем на список уже имеющихся баз данных. Для этого введем команду SHOW DATABASES.
SHOW DATABASES;
Запомните, что команды MySQL следует заканчивать точкой с запятой — ;
Базы данных создаются командой CREATE DATABASE. Мы назовем свою test.
CREATE DATABASE test;
Ответ дает понять, что команда выполнена без каких-либо ошибок. В данном случае, изменилась одна строка. Это относится к главной базе данных mysql, в которой содержится список всех баз данных. Но вам не нужно слишком беспокоиться о второстепенных подробностях. Последнее число означает время выполнения запроса. Убедиться, что база данных создана, мы можем, снова запустив команду SHOW DATABASES.
Чтобы заняться созданием таблиц в новой базе данных test, нам потребуется установить ее как текущую. Для этого используем команду USE. Параметром этой команды указывается название базы данных, которую нужно сделать текущей. Еще текущую базу можно устанавливать в командной строке, указывая ее название после параметра -D. Давайте продолжим и переключимся на базу данных test. Переключение базы данных:
USE test;
Привилегии в MySQL
Предоставление привилегий командой GRANT. Привилегиями определяются возможности доступа пользователей к базам данных, таблицам… почти ко всему. Сейчас только суперпользователь root из MySQL может обращаться к базе данных test, согласно данным разрешениям. Давайте создадим ещё одного пользователя, например, admin (администратор), который будет обращаться к базе данных test и работать с информацией из нее. Но прежде, чем начать, давайте взглянем на несколько упрощенный формат команды GRANT.
GRANT [привилегии] ON база_данных.* TO '[пользователь]'@'[узел]' IDENTIFIED BY '[пароль]';
Примечание: Команда GRANT считается способом создания пользователя. Поздние версии MySQL, однако, также содержат функцию CREATE_USER, хотя GRANT до сих пор предпочтительнее. Теперь нужны привилегии, которые можно присваивать. Используя все вышесказанное, можно устанавливать следующие привилегии:
ALL - дается полный доступ ко всей базе данных CREATE - пользователям позволяется создавать таблицы SELECT - пользователям позволяется делать запросы к таблицам INSERT - пользователям позволяется вставлять данные в таблицу SHOW DATABASES - разрешается выводить список баз данных USAGE - у пользователя нет привилегий GRANT OPTION - пользователям разрешается давать привилегии
Примечание: Если вы используете MySQL для обмена данными с веб-приложением, то разъясняемые здесь привилегии CREATE, SELECT, INSERT, а также привилегии DELETE и UPDATE (описанные в руководстве по MySQL, раздел GRANT and REVOKE Syntax (англ.)) — единственные, которые, вероятно, потребуются. Многие совершают ошибку, раздавая все привилегии, когда это, в действительности, не нужно. Сверьтесь с разработчиками приложений, действительно ли такие разрешения создадут проблемы в работе.
Создание пользователя admin:
GRANT CREATE,SELECT,INSERT,DELETE,UPDATE ON test.* TO 'admin'@'localhost' IDENTIFIED BY 'пароль';
Итак, пользователи созданы; теперь протестируем их. Сначала выйдем из mysql, написав quit в строке приглашения:
quit
Теперь мы снова в консоли. Пользователи настроены, давайте посмотрим, что они могут делать. Попробуйте выполнить несколько запросов к своим БД и посмотрите результат.
Удаление прав пользователя командой REVOKE.
Команда REVOKE позволяет запретить доступ пользователю. Можно либо запретить любой доступ, либо только определенный. В самом деле, формат очень похож на GRANT. Синтаксис REVOKE:
REVOKE [привилегии] ON база_данных.* FROM '[пользователь]'@'[узел]';
Параметры объясняются в разделе команды GRANT. А сейчас мы запретим пользователю любой вид доступа. Скажем, мы выяснили, что учетная запись admin вызывает проблемы с безопасностью. Мы решаем отозвать все права. Заходим как root делаем необходимое. Отзыв разрешений для пользователя admin:
REVOKE ALL ON test.* FROM 'admin'@'localhost';
Примечание: В данном случае, доступ пользователя прост, поэтому отмена прав на одну базу данных — не проблема. Но обычно вам, скорее всего, потребуется использовать *.* вместо test.*, чтобы заодно отменить доступ пользователя ко всем остальным базам данных.
Теперь взглянем, как полностью удалить учетную запись командой DELETE, и посмотрим на таблицу пользователей MySQL.
Удаление учетных записей командой DELETE. Таблица пользователей MySQL — это список пользователей и информации о них. Убедитесь, что вы зашли как root. Используйте основную базу данных MySQL.
Использование основной базы mysql:
USE mysql;
Посмотрим, какие в базе mysql существуют таблицы:
SHOW TABLES;
Таблица user — та, что нужна. В ней 30 различных полей, и ее сложно читать. Для облегчения чтения используем третью форму команды SELECT. Искомые поля — Host (узел) и User (пользователь). Нахождение пользователя admin в таблице user:
SELECT Host,User FROM user WHERE User = 'admin';
Теперь, получив информацию, мы можем избавиться от пользователя admin. Это делается командой DELETE; вот ее синтаксис:
DELETE FROM имя_таблицы WHERE поле='значение';
Вы могли заметить, что формат DELETE чем-то схож с форматом SELECT. Укажем поле User и значение admin. Это удалит запись из таблицы user, где пользователь — admin, удаляя нашу учетную запись. Сделаем так: Удаление пользователя admin:
DELETE FROM user WHERE User='admin'; FLUSH PRIVILEGES;
Команда FLUSH PRIVILEGES нужна, чтобы обновить разрешения.
На сегодня всё. Согласитесь, всё просто! 😉
Как в Windows подключиться к MySQL в командной строке
Делать запросы к базам данных MySQL можно не только через PHP. В комплекте с MySQL поставляется консольный клиент для подключения в серверу MySQL. Консольный — это означает, что у программы нет оконного интерфейса, а есть только интерфейс командной строки, в котором обращение к базам данных выполняется с помощью SQL запросов.
Команды для подключения к MySQL в командной строке, а уж тем более сами SQL запросы идентичны и для MariaDB. В дальнейшем для краткости я буду писать «MySQL», но везде я имею в виду «MySQL или MariaDB», поскольку в данном случае разницы между ними нет.
Подключившись через командную строку к СУБД MySQL можно выполнять самые разные задачи: просматривать базы данных и их таблицы, отправлять запросы к базам данных и получать результаты выполнения этих запросов.
Для подключения к серверу MySQL используется команда клиентская программа, которая называется mysql.exe. Её нужно запустить, но сделать нужно не двойным кликом, как обычную программу, а из командной строки.
Начнём с того, что нажмём сочtтание клавиш Win+r и выполним
Откроется командная строка.
Теперь нам нужно перейти в папку с файлом mysql.exe. Эта папка bin в директории, где установлена ваша СУБД MySQL. К примеру, у меня MariaDB, которая установлена в папке C:\Server\bin\mariadb\. Следовательно, интересующий нас файл находится в каталоге C:\Server\bin\mariadb\bin\. Для перехода в этот каталог используется команда cd следующим образом:
cd C:\Server\bin\mariadb\bin\
В этой команде замените C:\Server\bin\mariadb\bin\ на правильный для вашей системы путь
Теперь запустим файл mysql.exe. Необязательно указывать расширение файла .exe — система сама догадается, что мы имеем ввиду. Также нам нужно использовать опцию -u и -p. После первой опции нужно указать имя пользователя — root. После второй опции — пароль для пользователя. В моём случае пароль не установлен, поэтому я запускаю без опции -p:
mysql -u root
Может показаться, что мало что изменилось, но новое приглашение командной строки
MariaDB [(none)]>
говорит о том, что мы подключены к серверу MySQL. Точнее, в моём случае мы подключены к серверу MariaDB.
Чтобы посмотреть список баз данных, введём команду:
SHOW DATABASES;
Чтобы последующие запросы отправлялись к определённой базе данных (например, к test), используется команда USE:
USE test;
Чтобы посмотреть таблицы в выбранной базе данных запустите команду:
SHOW TABLES;
Создадим какую-нибудь таблицу:
CREATE TABLE AuthorsTBL ( AuthorID INT NOT NULL AUTO_INCREMENT, AuthorName VARCHAR(100), PRIMARY KEY(AuthorID) );
И вновь посмотрим содержимое базы данных test:
SHOW TABLES;
Если вы уже работали с базами данных MySQL через PHP, то вы можете использовать любые запросы, которые используете в PHP.
Чтобы выйти выполните команду
exit;
или нажмите Ctrl+d.
Для продолжения знакомства рекомендуется изучить материал:
- Изучение MySQL / MariaDB для начинающих
- 20 команд MySQL (mysqladmin) для администратора базы данных в Linux
Связанные статьи:
- Apache для Windows (50%)
- Как запустить Apache на Windows (50%)
- Документация по Apache на русском языке (50%)
- Как подключить PHP к Apache на Windows (50%)
- Как подключить MySQL к Apache на Windows (50%)
- Как в скрипте Python получить данные от веб-страницы методами GET и POST в Windows (RANDOM — 50%)
2.3.5.5. Запуск MySQL от Windows Command Line
Сервер MySQL может быть запущен вручную с командной строки. Это может быть сделано на любой версии Windows.
MySQL Notifier для GUI Microsoft Windows может также использоваться, чтобы запустить/остановиться/перезапустить сервер MySQL.
Чтобы запустить mysqld сервер с командной строки, следует запустить консоль (или » окно DOS » ) и ввести эту команду:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld"
Путь к mysqld может измениться в зависимости от расположения установки MySQL на Вашей системе.
Можно остановить сервер MySQL, выполняя эту команду:
C:\> "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqladmin" -u root shutdown
Если MySQL root у учетной записи пользователя есть пароль, Вы должны вызвать mysqladmin с -p опция и предоставление пароль когда запрошено.
Эта команда вызывает MySQL административная утилита mysqladmin , чтобы соединиться с сервером и сказать этому завершать работу. Команда соединяется как MySQL root пользователь, который является значением по умолчанию административная учетная запись в системе предоставления MySQL. Отметьте, что пользователи в системе предоставления MySQL совершенно независимы от любых пользователей входа в систему под Windows.
Последняя опция должна запустить mysqld с —standalone и —debug опции. В этом случае mysqld пишет файл журнала C:\mysqld.trace это должно содержать причину, почему mysqld не запускается. См. MySQL Internals: Портирование на Другие Системы .