Как зайти в MySQL – подробное описание всех дверей. Справочное руководство по MySQL Командная строка mysql windows

От автора: опять заплутали, и не знаете, как зайти в MySQL? Не вы первый! Собирайте всех заблудившихся, и сейчас отправимся прямиком в гости к ней. К кому «к ней»? К самой популярной СУБД всемирной паутины!

Где в Денвере находится MySQL

Имеется в виду не столица штата Колорадо в США, а пакет программ для создания и тестирования приложений на PHP. В состав набора для «джентльменов» входит локальный сервер Apache, MySQL сервер и оболочка phpMyAdmin. Именно с помощью данного программного пакета чаще всего «новички» познают все тонкости работы с этой системой управления БД.

Перед тем, как зайти в MySQL через браузер, нужно запустить локальный сервер, затем в адресной строке набрать localhost, и в появившемся окне «Ура, заработало!» в разделе утилиты выберите phpMyAdmin.

После чего окажетесь там-же (в phpMyAdmin).

Проходим к базам данных через «лабиринт»

Мы с вами отправимся в «дремучий» лес, и постараемся через него «пробраться» к серверу баз. Не подумайте, что мы от кого-то прячемся, просто сейчас мы будем действовать, как . Поехали!

Перед тем, как зайти в MySQL через командную строку, следует выяснить, где находится главная директория сервера баз данных. Если вы используете СУБД в «чистом» виде без «примесей» (вне «джентльменского» набора), то корневая папка сервера расположена здесь: C:\Program Files\MySQL\MySQL Server 5.5\bin\mysql.exe

Если вы используете Денвер, то искомый фал находится по этому пути: Z:\usr\local\mysql-5.5\bin\mysql.exe,

где Z – это виртуальный диск, который создается после запуска локального веб-сервера. У вас он может быть под другим именем (точнее, буквой).

Нас интересует именно файл mysql.exe. Запустим его на выполнение, указав имя сервера баз данных, пароль и пользователя, под которым зайдем в MySQL.

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

В черное окно CMD (командной строки) вводим путь, где хранится исполняемый файл MySQL, а рядом указываем имя пользователя СУБД и пароль. Так как у нас локальный сервер, то мы вводим после идентификатора u имя пользователя root без пароля.

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

Вот весь кусок «кода»: Z:\usr\local\mysql-5.5\bin\mysql.exe -u root

Если все прошло успешно, то ниже в окне командной строки должна появиться информация о версии запущенного сервиса, год выпуска и другая «ненужная» для нас информация.

Теперь, чтобы проверить правильность подключения, введем после оператора mysql> запрос, который отобразит все базы данных хранящиеся на сервере. Код запроса:

show databases ;

Не забывайте в конце запроса ставить точку с запятой, иначе система выдаст сообщение об ошибке. После ввода запроса и нажатия на клавишу «Enter» мы получили список всех баз, хранящихся на сервере СУБД:

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

show tables from db1;

show tables from db1 ;

db1 – это имя нужной нам базы.

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

Копаем глубже!

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

SELECT * FROM animal;

SELECT * FROM animal ;

Вводим запрос, запускаем на выполнение и…. Почему-то сервер выдал нам ошибку.

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

В phpMySQL данный запрос был бы успешно выполнен и сервер возвратил выборку из всех строк, содержащихся в запрашиваемой таблице.

Исправим наше общее упущение (свою вину всегда трудно признавать ), и перед тем, как войти в MySQL через консоль снова, подготовим «специфический» запрос, с помощь которого мы укажем системе нужную БД:

USE db1 ;

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

И теперь введем и запустим запрос на выборку всех данных из таблицы animal еще раз. «Да будут данные!» — сказал администратор, и запустил на выполнение SELECT. Докопались до базы db1, и получили содержимое таблицы animal. Не зря перед тем, как войти в базу данных MySQL, мы провели целый «ритуал», и написали правильное «заклинание» на языке SQL.

Что можно еще накопать?

Вглубь мы «докопались» до самого дна MySQL. Теперь давайте «копнем» немного в сторону. Какие еще сведения можно получить через командную строку, опрашивая MySQL? Хотите узнать структуру таблицы, типы данных всех столбцов, первичный ключ? Пожалуйста! Запустите на выполнение этот запрос:

describe animal;

describe animal ;

Иногда, чтобы знать, как включить сервер MySQL, требуется получить список всех зарегистрированных пользователей СУБД. Для этого используется следующий запрос.

Будем считать что все у нас уже установлено и теперь приступаем непосредственно к работе.
Подключаемся:
ceval@srv:~$ mysql -pПАРОЛЬ
-p, —password= — Пароль пользователя, для соединения с сервером MySQL. Не должно быть пробела между -p и паролем.
-u, —user= - Имя пользователя для соединения с сервером MySQL. Необязательно, по умолчанию используется такое же, как ваш логин.Используеться если логин отличается от имени пользователя для соединения с сервером MySQL.
$ mysql -u ceval_ -pПАРОЛЬ
Если мы ввели свой пароль правильно, то увидим такие строки и приглашения:

Welcome to the MySQL monitor. Commands end with ; or \g.
Server version: 5.0.45-Debian
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>

Создаем нужную нам базу, с кодировкой cp1251, указанную кодировку можно заменить на требуемую:
CREATE DATABASE db_name DEFAULT CHARACTER SET cp1251 DEFAULT COLLATE cp1251_general_ci;
Удаления базы:
DROP DATABASE db_name;
Смена базы
USE `mydatabase`;
Удаления таблицы из базы
DROP TABLE `db_table`;
Еще немного:
->\g show databases; // смотрим какие базы есть
->\g create database sputnik; // создаем новую базу
->\g show databases; // проверяем создалась ли она
->\q // Выходим

В разных версиях MySQL могут быть разные команды (4 и 5) в данном случае \g — дает команду серверу выполниьт скрипт SQL
Загрузка, сохранение базы данных MySQL (backup, restore) работа с mysql ubuntu
Загрузить базу сохраненными данными (если делалось сохранение данных). Они сохранены например в файле baza.sql
mysql
->\g show databases;
->\u baza;
->\. /home/backup/baza.sql
->\q
/home/backup/baza.sql — путь к файлу бекапа
[b]Сохранить базу с данными в файл baza.sql
mysqldump baza > /home/backup/baza.sql;
База хранится: /var/lib/mysql/baza - для удаления всей базы данных достаточно удалить данный каталог.
Можно осуществлять различными способами:
— подключиться по ssh и работать через командную строку;
— использовать phpmyadmin;
— использовать пакет mysql-admin — это графическая утилита администрирования MySQL (GUI tool for intuitive MySQL administration
MySQL)
Теперь устанавливаем себе пакет mysql-admin на машину
sudo aptitude install mysql-admin
Дальше идем на удаленную машину и правим конфиг [b]my.cnf
$ sudo nano /etc/mysql/my.cnf
Для начало можно проверить:
$ netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
Как видно из вывода пока MySQL слушает на localhoste, а нам нужно, чтобы MySQL слушал на всех интерфейсах, а не только на localhost, поэтому находим и редактируем такую запись:

[...]
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
[...]

и что б MySQL слушал на всех интерфейсах, закомментируем эту строчку:
[...]

#bind-address = 127.0.0.1:

[...]
Рестанем MySQL:
$ sudo /etc/init.d/mysql restart
И посмотрем снова вывод команды:
$ netstat -an | grep 3306
Вывод должен выглядеть следующим образом:

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

и теперь можно запускать mysql-admin для удаленной работы с MySQL — Alt+F2 — mysql-admin
или
$ mysql-admin
работа с mysql ubuntu

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

Начало работы с mysql

Ну во первых начнем с того как зайти в mysql, для этого надо в консоли набрать:

Mysql -uusername -ppassword -hhost

Итак мы в командной строке mysql. Не забываем один важный момент: разделителем комманд mysql является «;» (точка с запятой).
Теперь необходимо создать базу данных или выбрать уже созданную:

Create database db_name; - создаем новую бд с названием db_name show databases; - просмотр имеющихся бд use db_name; - выбрать бд с именем db_name

Вобщем мы выбрали (или создали) необходимую нам бд а теперь просмотрим команды для работы с таблицами:

Show tables; - просмотр всех таблиц show columns from table_name; - просмотр колонок и их свойств create table table_name (`id` int(11) AUTO_INCREMENT,`name` varchar(255)); - создание таблицы с колонками id и name alter table table_name add column1 int(11); - добавить колонку в таблицу alter table table_name drop column1; - удалить колонку из таблицы

Ну а просмотр, удаление, добавление данных делается стандартными, всем известными командами…
Рассмотрим пример с SELECT:

SELECT * FROM table_name;

Скорее всего вы увидите вместо кириллицы разнообразные кракозябры или вопросительные знаки, в зависимости от того какая кодировка в вашей базе данных и в используемой консоли. Чтоб исправить это просто до выборки SELECT вводим команду

SET NAMES utf8; - чаще для линуксовых консолей SET NAMES cp866; - для cmd windows

UPD: в windows нужно указывать полный путь до файла mysql.exe, например C:/apache2/bin/mysql/mysql.exe

Проектирование базы данных – Dia

Конечно для больших проектов создание таблиц способом описанным выше займет очень много времени, и phpmyadmin тоже не является решением. Если вам нужно создать большую базу данных и рассмотреть взаимодействие всех таблиц друг с другом могу посоветовать вам отличный редактор dia. После создания таблиц в данной программе, сохраним его в формате.dia и переконвертируем его в формат.sql:

Tedia2sql -i file.dia -o file.sql

Если вам понадобилось создать или залить дамп базы данных то используем:

Mysql -uusername -ppassword -hhost db_name < file_name.sql - залить бд mysqldump -uusername -ppassword -hhost db_name > file_name.sql - сделать дамп бд

можно заливать из файлов различных форматов, txt например..

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

Shell> mysql database output.tab

Если возникают проблемы из-за недостатка памяти на данном клиенте, применяйте параметр --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[=...] Пароль, используемый при подсоединении к серверу баз данных. Если в командной строке пароль не указан, то он запрашивается у пользователя. При использовании краткой формы -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 Если соединение с сервером упало, подождать и попытаться восстановить его, вместо того, чтобы прервать работу.

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

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

Mysql> help Команды MySQL help (\h) Выводит данный текст. ? (\h) Синоним для help. clear (\c) Команда очистки. connect (\r) Снова подключиться к серверу. Дополнительные аргументы - db и host. edit (\e) Редактировать текущую команду с помощью $EDITOR. ego (\G) Послать текущую команду MySQL серверу и вывести результат по вертикали. exit (\q) Выйти из программы. То же что и quit. go (\g) Послать текущую команду MySQL серверу. nopager (\n) Блокировать пейджер, выводить через stdout. notee (\t) Не добавлять записи в выходной файл outfile. pager (\P) Установить PAGER . Выводить результаты запроса через PAGER. print (\p) Вывести текущую команду. prompt (\R) Изменить формат приглашения на ввод команд mysql. quit (\q) Выйти из программы. rehash (\#) Восстановить таблицу хэшей. source (\.) Запустить на выполнение файл с SQL-сценарием. Указать имя файла в качестве аргумента. status (\s) Получить информацию о статусе сервера. tee (\T) Установить параметр outfile . Присоединить что-либо к данному выходному файлу. use (\u) Использовать другую базу данных. Указать имя базы данных в качестве аргумента.

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

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

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

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

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

Mysql> SELECT * FROM mails WHERE LENGTH(txt) sbj: UTF-8 txt: >>>>> "Thimble" == Thimble Smith writes: Thimble> Hi. I think this is a good idea. Is anyone familiar with UTF-8 Thimble> or Unicode? Otherwise, I"ll put this on my TODO list and see what Thimble> happens. Yes, please do that. Regards, Monty file: inbox-jani-1 hash: 190402944 1 row in set (0.09 sec)

  • Для входа в систему можно использовать опции команды 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: Ее можно использовать для записи в файл: mysql> pager cat > /tmp/log.txt и результаты будут направлены только в файл. Вызываемые командой pager программы могут принимать любые допустимые опции: mysql> pager less -n -i -S Обратите особое внимание на опцию -S в вышеприведенном примере. Она может быть очень полезна при просмотре результатов. Попробуйте применить ее с горизонтальным выводом (завершайте команды символами "\g", or ";") и с вертикальным (в конце команд - "\G"). Очень громоздкие результаты вывода иногда трудно бывает прочесть с экрана, в этом случае команда less с опцией -S позволит просмотреть результаты в интерактивном режиме слева направо, при этом при появлении строк с длиной больше, чем ширина экрана, их вывод будет продолжен вывод с новой строки. Вывод данных в таких случаях получается более удобочитаемым. При интерактивном вызове команды less с опцией "-S" можно переключать режим ее работы (включено/выключено) из командной строки. Чтобы получить дополнительную информацию относительно less, обращайтесь к описанию команды "h".
  • В заключение отметим (если вы этого еще не поняли из предыдущих примеров), что существует возможность комбинировать очень сложные способы обработки результатов. Так, в следующем примере результаты будут посланы в два различных каталога, смонтированных на двух различных жестких дисках в /dr1 and /dr2, и, несмотря на это, результаты можно увидеть на экране посредством команды less: mysql> pager cat | tee /dr1/tmp/res.txt | \ tee /dr2/tmp/res2.txt | less -n -i -S
  • Приведенные выше функции можно тоже комбинировать: запустив tee и установив pager в less , можно просматривать результаты с помощью Unix-команды less и при этом одновременно производить запись в файл. Разница между служебной Unix-утилитой tee , используемой в программе pager , и встроенной в клиент mysql командой tee заключается в том, что встроенная команда tee работает даже в том случае, если в Unix утилита tee недоступна. Встроенная команда tee также ведет запись всего, что выводится на экран, тогда как утилита Unix tee , используемая с pager , не делает этого в достаточном объеме. Последнее, но тем не менее важное обстоятельство состоит в том, что интерактивная команда tee более удобна для переключения режимов работы включено/выключено, если при записи в файл иногда возникает необходимость отключить эту функцию.

Можно изменить формат приглашения в командной строке клиента 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_PS1 для строки приглашения. Например: shell> export MYSQL_PS1="(\u@\h) [\d]> " `my.cnf" `.my.cnf" Можно установить опцию prompt в любом конфигурационном файле MySQL в группе mysql . Например: prompt=(\u@\h) [\d]>\_ В командной строке Можно установить опцию --prompt из командной строки утилиты mysql . Например: shell> mysql --prompt="(\u@\h) [\d]> " (user@host) > В интерактивном режиме Можно также использовать команду prompt (или \R) для изменения настроек приглашения в интерактивном режиме. Например: mysql> prompt (\u@\h) [\d]>\_ PROMPT set to "(\u@\h) [\d]>\_" (user@host) > (user@host) > prompt Возвращение к исходным (по умолчанию) настройкам PROMPT в утилите mysql> mysql>

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

mysql в начале строки означает, что команда выполняется после входа вMySQL .

Символ # или $ в начале строки означает, что команда выполняется из командной строки.

Что бы проверить статус сервера MYSQL выполните:

для FreeBSD :

# service mysql-server status

в CentOS / RHEL :

# service mysqld status

MySQL из консоли, если сервер MySQL находится на том же хосте:

Что бы подключиться к серверу MySQL из консоли, если сервер MySQL находится на удаленном хосте db1.example.com:

$ mysql -u username -p -h db1.example.com

Работа с базами, таблицами - просмотр, удаление, редактирование записей. Консоль

Создать базу данных на MySQL сервере:

Mysql create database

Показать список всех баз данных на сервере MySQL :

Mysql use ;

Отобразить все таблицы в базе данных:

Mysql show tables;

Просмотреть формат таблицы в базе:

Mysql describe ;

Удалить базу:

Mysql drop database ;

Удалить таблицу из базы:

Mysql drop table ;

Показать все содержимое таблицы:

Mysql SELECT * FROM ;

Отобразить столбцы и содержимое столбцов в выбранной таблице:

Mysql show columns from ;

Отобразить строки в определенной таблице, содержащие " whatever ":

Mysql SELECT * FROM WHERE = "whatever";

Отобразить все записи в определенной таблице, содержащие " Bob " и телефонный номер " 3444444:

Mysql SELECT * FROM WHERE name = " Bob " AND phone_number = " 3444444 ";

Отобразить все записи, НЕ содержащие имя " Bob " и телефонный номер " 3444444 ", отсортированные по полю phone_number:

Mysql SELECT * FROM WHERE name != " Bob " AND phone_number = " 3444444 " order by phone_number;

Показать все записи, начинающиеся с букв " bob " и телефонного номера " 3444444 " в определенной таблице:

Mysql SELECT * FROM WHERE name like " Bob %" AND phone_number = " 3444444 ";

Показать все записи, начинающиеся с букв " bob " и телефонного номера " 3444444 ", ограничиваясь записями с 1-ой до 5-ой:

Mysql SELECT * FROM WHERE name like " Bob %" AND phone_number = " 3444444 " limit 1,5;

Использование регулярных выражений ("REGEXP BINARY") для поиска записей. Например, для регистро-независимого поиска - найти все записи, начинающиеся с буквы А:

Mysql SELECT * FROM WHERE rec RLIKE "^ a ";

Показать все уникальные записи:

Mysql SELECT DISTINCT FROM ; mysql SELECT , FROM ORDER BY DESC;

Показать количество строк в таблице:

Mysql SELECT COUNT(*) FROM ;

Mysql SELECT SUM(*) FROM ;

Удаление столбца:

Mysql alter table drop column ;

Добавление колонки в базу данных:

Mysql alter table add column varchar (20);

Изменение имени столбца:

Mysql alter table change varchar (50);

Создать столбец с уникальным именем, что бы избежать дубликатов в названиях:

Mysql alter table add unique ();

Изменение размера столбца:

Mysql alter table modify VARCHAR(3);

Удаление столбца из таблицы:

Mysql alter table drop index ;

Mysql LOAD DATA INFILE " /tmp/filename.csv " replace INTO TABLE FIELDS TERMINATED BY "," LINES TERMINATED BY "n" (field1,field2,field3);

Пользователи, пароли сервера MySQL - добавление, изменение пользователей и паролей. Консоль

Создание нового пользователя - подключение к серверу MySQL под root, переключение к базе данных, добавление пользователя, обновление привилегий:

# mysql -u root -p mysql use mysql; mysql INSERT INTO user (Host,User,Password) VALUES("%"," username ", PASSWORD(" password ")); mysql flush privileges;

Изменений пользовательского пароля из консоли на удаленном хосте db1.example.org:

# mysqladmin -u username -h db1.example.org -p password " new-password "

Изменение пользовательского пароля из консоли MySQL - подключение под root, обновление пароля, обновление привилегий:

# mysql -u root -p mysql SET PASSWORD FOR " user "@" hostname " = PASSWORD(" passwordhere "); mysql flush privileges;

Восстановление/изменение пароля root сервера MySQL - остановка MySQL , запуск без таблиц привилегий, подключение под root, установка нового пароля, выход и перезапуск MySQL .

# /etc/init.d/mysql stop # mysqld_safe -skip-grant-tables & # mysql -u root mysql use mysql; mysql update user set password=PASSWORD(" newrootpassword ") where User="root"; mysql ; flush privileges; mysql quit # /etc/init.d/mysql stop # /etc/init.d/mysql start

Set a root password if there is on root password.

# mysqladmin -u root password newpassword

Обновление пароля root:

# mysqladmin -u root -p oldpassword newpassword

Установка права на подключение к серверу с хоста localhost с паролем " passwd " - подключение подroot, переключение к базе данных, установка привилегий, обновление привилегий:

# mysql -u root -p mysql use mysql; mysql grant usage on *.* to bob @localhost identified by " passwd "; mysql flush privileges;

Установка привилегий пользователю на использование базы данных - подключение под root, переключение к базе данных, установка привилегий, обновление привилегий:

# mysql -u root -p mysql use mysql; mysql INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ("%","databasename","username","Y","Y","Y","Y","Y","N"); mysql flush privileges;

Mysql grant all privileges on databasename .* to username @localhost; mysql flush privileges;

Обновление информации в базе данных:

Mysql UPDATE SET Select_priv = "Y",Insert_priv = "Y",Update_priv = "Y" where = user";

Удаление строки в таблице:

Mysql DELETE from where = "whatever";

Обновление привилегий в базе данных:

Mysql flush privileges;

Резервные копии - создание, восстановление бд. Консоль

Создать резервную копию (dump) всех баз данных в файл alldatabases.sql:

# mysqldump -u root -p password -opt ; /tmp/alldatabases.sql

Создать резервную копию одной базы данных в файл databasename.sql:

# mysql dump -u username -p password -databases databasename ; /tmp/databasename.sql

Создать резервную копию одной таблицы в файл databasename.tablename.sql:

# mysql dump -c -u username -p password databasename tablename ; /tmp/databasename.tablename.sql

Восстановление базы данных (или таблицы) из резервной копии:

# mysql -u username -p password databasename < /tmp/databasename.sql

Создание таблиц БД. Консоль

маленькими буквами указаны имена столбцов;
ПРОПИСНЫМИ буквами - типы и атрибуты столцов;
в (скобках) - значение типа столбца.

Создать таблицу, пример 1:

mysql CREATE TABLE (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35), suffix VARCHAR(3), officeid VARCHAR(10), userid VARCHAR(15), username VARCHAR(8), email VARCHAR(35), phone VARCHAR(25), groups VARCHAR(15), datestamp DATE, timestamp TIME, pgpemail VARCHAR(255));

Создать таблицу, пример 2:

Mysql create table (personid INT(50) NOT NULL AUTO_INTCREMENT PRIMARY KEY, firstname VARCHAR(35), middlename VARCHAR(50), lastname VARCHAR(50) default "bato");