ср, 24/10/2012 - 23:02
Вам когда-нибудь приходилось работать с MySQL через командную строку? Случается, что под рукой не оказывается ни phpMyAdmin, ни HeidiSQL, например, когда приходится заходить на сервер клиента по SSH, не имея возможность установить какой-либо софт. В таких случаях выручает командная строка, она же консоль.
Я пользуюсь консолью постоянно и собираюсь показать вам несколько трюков при работе с MySQL.
Основы
Работа с MySQL всегда начинается с авторизации. И здесь все невероятно просто, вам нужно всего лишь передать ваш логин и пароль параметрами командной строки.
mysql –uUSERNAME –pPASSWORD
Таким образом, вы открываете сеанс работы с MySQL сервером.
Так вы можете просмотреть список всех баз данных:
SHOW DATABASES;
Не забывайте ставить точку с запятой в конце каждой команды, это говорит серверу, что команда закончена.
Переключиться на нужную базу данных можно, используя команду USE:
USE database;
Ну и, конечно, посмотреть, что же внутри таблиц находится, можно командой SELECT:
SELECT * FROM table;
Выйти из сеанса работы еще проще, чем зайти:
EXIT
Дальше я приведу несколько примеров работы через консоль.
Экспорт базы данных в файл
mysqldump –uUSERNAME –pPASSWORD DATABASE > DATABASE.sql
Импорт базы данных из файла
mysql –uUSERNAME –pPASSWORD DATABASE < DATABASE.sql
Запуск MySQL запроса из консоли
mysql -uUSERNAME -pPASSWORD -e "SHOW DATABASES;"
Запуск произвольной команды из сеанса MySQL под Linux
На десерт очень занимательная возможность, которая, я уверен, понравится как новичкам, так и профи – запуск любых команд и приложений прямо из сеанса MySQL.
Заливаем дамп базы из файла в базу, не выходя из сеанса MySQL:
mysql> \! mysql –uUSERNAME –pPASSWORD DATABASE < DATABSE.sql
Выводим список процессов Linux:
mysql> \! top
Оценим объем логических разделов жесткого диска:
mysql> \! df -h
Надеюсь, теперь вы по-новому взглянули на MySQL и получили несколько степеней свободы в работе с этой замечательной СУБД без использования дополнительных приложений.
Эта статья написана с использованием WYSIWYG редактора, который мы включили совсем недавно.
Как видите, у него достаточно возможностей для полноценной работы.
А возможность сохранять статью как черновик позволит писать в несколько подходов, не боясь потерять предыдущие наработки.
Призываю писать и делиться опытом!
Комментарии
Действительно, иногда
Действительно, иногда приходится лезть напрямую в базу.
Если у вас есть Drush (а он обязан у вас быть), то подключиться к текущей базе данных в MySQL или даже в PostgreSQL можно простой командой, не вспоминая и не подбирая строку подключения и её параметры:
Далее всё как обычно.
Спасибо, kalabro, за полезное
Спасибо, kalabro, за полезное дополнение! Никогда не пользовался этой командой драша, теперь буду ))
mysql> \! mysql –uUSERNAME
mysql> \! mysql –uUSERNAME –pPASSWORD DATABASE < DATABSE.sql
нельзя так делать. т.к. пароль станет доступен другим пользователям системы, но говоря уже о том, что он останется в bash_history
Согласен, не безопасно.
Согласен, не безопасно.
А как на счет?
Должен быть запрошен пароль.
Так лучше, но ниже есть более
Так лучше, но ниже есть более удачное решение.
так лучше, большинству это
так лучше, большинству это подойдет у кого нет больших баз.
HeidiSQL как и большинство
HeidiSQL как и большинство подобных программ, умеет работать через ssh туннель, поэтому возможность доступа к базе данных только изнутри по ssh не помешает воспользоваться вам столь удобным инструментом.
!В случае HeidiSQL, для работы туннелей должен быть установлен Putty, и указан путь до plink.exe в настройках соединения.
Для заливки дампа (а точнее исполнения внешнего SQL скрипта) не выходя из оболочки, нет необходимости выполнять внешние команды. Делается это так:
Ещё полезно знать о том, что формат вывода результата SQL запроса или команды можно изменить c табличного на построчный:
Это бывает очень удобно, особенно в тех случаях, когда выводится много столбцов, и табличный вид ломается, становясь не читаемым.