Выход из режима mysql>
Привет всем, купил вчера руководство администратора MySQL, читал — теперь могу сменить пароль у root, задать новую учётную запись, удалил пользователя Любой с localhost, Без_пароля, но не могу удалить пользователя Любой с Любого_хоста Без_пароля, пишит Ок, а посмотрю сидит, правда у него привлегий нет USAGE. Как удалить такого пользователя и выходить из режима «mysql>» ?
[color=»red»]Предупреждения. Название топика с содержимим вопроса имеет столько же общего, что сахар и соль. Прошу впредь давать понятный названия темам[/color]
Как сделать выход из скрипта при проверке условия?
В шапке скрипта должна быть проверка на значение из базы. Сделал процедуру с проверкой переменной. Внутри процедуры должно быть что-то такое:
if (@var1 <> @var2) then exit end if;
Должно полностью завершить работу скрипта. И, если возможно, вернуть нужный статус в консоль bash
Отслеживать
задан 4 сен 2019 в 11:59
Oleg Vilkovsky Oleg Vilkovsky
433 1 1 золотой знак 5 5 серебряных знаков 17 17 бронзовых знаков
Что такое «скрипт» в Вашем текущем понимании? Если хранимая процедура, то есть LEAVE Statement.
4 сен 2019 в 12:05
4 сен 2019 в 12:08
Скрипт — подразумевается будут несколько запросов, но в начале перед этими запросами нужно добавить шапку с проверкой условий, если условие не выполняется, то запросы ниже не должны выполняться
4 сен 2019 в 12:20
Я спросил «что это». А не «что оно будет делать». Ну коли так, давайте по шагам. Кто его будет выполнять (не запускать на выполнение!) — bash или MySQL?
Команды пакета MySQL
СУБД MySQL поставляется приходит со следующими основными программами и скриптами.
- mysql
- mysqlaccess
- mysqladmin
- mysqld
- mysqldump
- mysqlshow
- isamchk
- isamlog
- safe_mysqld
Еще есть несколько утилит. Они не жизненно важны для MySQL, но обеспечивают полезные дополнительные функциональные возможности.
- comp_err
- msql2mysql
- mysqlbug
- perror
- replace
- which1
- zap
Клиентская программа MySQL.
mysql [OPTIONS] database
Клиентская часть СУБД MySQL названа MySQL. Она обеспечивает интерфейс командной строки с СУБД MySQL, и возможность неинтерактивной пакетной обработки.
Программой mysql поддерживаются следующие опции. Вы можете использовать или «короткий» одиночный символ или более подробную версию.
-\?, —help | Справка. |
-d, | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-d, | Вывести отладочную информацию при выходе из программы. |
-e, —exec | Выполнить команду и выйти, неявная форма опции —batch. |
-f, —force | Продолжить, даже если мы сталкиваемся с SQL ошибкой. |
-h, —hostname=[hostname] | Задает имя сервера, с которым Вы желаете соединиться. |
-P, —port=[port] | Порт, для соединения с сервером MySQL. |
-p, —password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-q, —quick | Быстрый (небуферизованный вывод), может замедлить сервер, если вывод приостановлен. |
-s, —silent | Работать молча (подавить вывод). |
-u, —user=[user] | Имя пользователя для соединения с сервером MySQL. Необязательно, если имя пользователя такое же, как ваш логин. По умолчанию именно ваш логин используется в качестве имени пользователя, что облегчает настройку. |
-v, —verbose | Подробный вывод. -v опция может быть удвоена или утроена для более подробного вывода. В программах русских авторов обычно именуется «уровнем болтливости программы». |
-w, —wait | Если подключение терпит неудачу, то подождать и повторить попытку. |
-B, —batch | Выполнить в пакетном режиме. Никаких запросов и никаких ошибок в STDOUT. Устанавливается автоматически при чтении из/записи в канал (пайп). Результаты будут выведены в формате с разделением табуляцией. Одна строка результата соответствует одной строке вывода. |
-I, —help | Справка, эквивалент -\? . |
-V, —version | Вывести информацию о версии пакета. |
В интерактивном режиме mysql будет печатать результаты в таблице подобно примеру, приведенному ниже. Если не задан пароль или имя пользователя mysql попробует зайти в систему на сервере базы данных с использованием вашего логина и НУЛЕВОГО (ПУСТОГО) пароля. Если ваш mysql логин отличается от вашего логина в unix, или если вы имеете пароль, то это провалится.
$ mysql mysql Welcome to the mysql monitor. Commands ends with ; or \g. Type 'help' for help. mysql> select * from host; 1 rows in set (0.25 sec) +-----------+----+--------+--------+--------+--------+--------+------+ | host | db | select | insert | update | delete | create | drop | +-----------+----+--------+--------+--------+--------+--------+------+ | localhost | % | Y | Y | Y | Y | Y | Y | +-----------+----+--------+--------+--------+--------+--------+------+ mysql>
Переведу этот пример на русский:
$ mysql mysql Добро пожаловать в монитор mysql. Команды кончаются на ; или \g. Наберите 'help' для получения справки. mysql> select * from host; 1 строка в наборе (0.25 секунды) +-----------+----+--------+--------+--------+--------+--------+------+ | host | db | select | insert | update | delete | create | drop | +-----------+----+--------+--------+--------+--------+--------+------+ | localhost | % | Y | Y | Y | Y | Y | Y | +-----------+----+--------+--------+--------+--------+--------+------+ mysql>
В режиме командной строки Вы должны иметь возможность работать с историей ввода и редактировать предыдущие команды. Это сильно облегчит работу.
В пакетном режиме результаты выводятся в виде полей, разделенных символами табуляции.
Создайте файл /tmp/test, который содержит следующую строку:
select * from host
В командной строке введите:
$ mysql mysql
Вы получите что-то вроде:
host db select insert update delete create drop localhost % Y Y Y Y Y Y
Проверка прав доступа пользователя.
mysqlaccess [host] [user] [db] OPTIONS
Скрипт mysqlaccess используется, чтобы внести в список привилегии пользователя для конкретной базы данных. Это дает информацию, которая может быть полезна при диагностировании проблем с доступом пользователей к данной базе данных. Не забудьте, что всегда надо скомандовать:
$ 'mysqladmin reload'
после внесения изменений в таблицы базы данных MySQL.
Скрипт mysqlaccess поддерживает следующие параметры (Вы можете использовать «короткий» одиночный символ или более подробную версию):
-?, —help | Справка. |
-v, —version | Информация о версии |
-u, —user=. | Имя пользователя для доступа к базе данных. |
-p, —password=. | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-h, —host=. | Имя сервера, используется для проверки прав доступа. |
-d, —db=. | Имя базы данных, используется для проверки прав доступа. |
-U, —superuser=. | Логин администратора. |
-P, —spassword=. | Пароль администратора. |
-b, —brief | Вывести краткие сведения о таблице. |
—relnotes | Вывести заметки по реализации. |
—plan | Вывести идеи для будущих реализаций. |
—howto | Вывести примеры использования `mysqlaccess’ |
—debug=N | Уровень отладки N (0..3) |
Вы должны указать по крайней мере имя пользователя и имя базы данных, которые Вы желаете проверить. Если имя сервера не задано, то подразумевается имя ‘localhost’.
«Групповые символы» (*. %, _) могут применяться при указании сервера, пользователя и db (базы данных). Убедитесь, что они не будут перехвачены вашей командной оболочкой unix.
Выполняет административные функции.
mysqladmin [OPTIONS] command command.
Программа mysqladmin используется, для управления различными аспектами функционирования СУБД MySQL. Допустимы следующие опции (Вы можете использовать «короткий» одиночный символ или более подробную версию):
-\?, —help | Справка. |
-d, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-f, —force | Не спрашивать подтверждения при пропуске таблицы. |
-h, —host=[hostname] | Имя сервера, если не localhost. |
-i, —sleep=[seconds] | Выполнить команды несколько раз с паузой в [секунд] между ними. |
-p, —password[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-u, —user=[user] | Имя пользователя. Если не указано, используется текущий логин. |
-P, —port=[port] | Порт, для соединения с сервером MySQL. |
-V, —version | Вывести информацию о версии. |
Кроме этого программа mysqladmin поддерживает следующие команды:
create [имя базы данных] | Создать базу данных. |
drop [имя базы данных] | Удалить базу данных (вместе со всеми таблицами). |
processlist | Вывести сведения о работающих потоках MySQL. |
reload | Перечитать настройки и очистить все кэши. |
shutdown | Завершить работу СУБД MySQL. Все запущенные MySQL-сессии помечаются как ‘killed’. Это означает, что все потоки, которые простаивают в настоящее время, будут закрыты немедленно, а управление потоками будет закрыто, когда они достигнут точек завершения, определенных сервером. Клиенты получат сообщение об ошибке ‘mysql server has gone away’. |
status | Вывести короткое сообщение о статусе сервера. |
version | Вывести информацию о версии. |
Обратите внимание: mysqladmin понимает сокращения. Например, Вы могли бы написать следующее:
$ mysqladmin v p
Это вывело бы версию mysqld и список всех активных в настоящее время потоков.
Вы можете использовать опцию -i=[секунд] для повтора команды каждые [секунд]. Это наиболее полезно с командой processlist.
Обратите внимание, что Вы можете использовать вышеупомянутые команды, только если Вы имеете соответствующие права доступа.
Серверная часть пакета MySQL (mysqld).
Программа mysqld является ядром СУБД MySQL. Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно.
Может наблюдаться спад производительности при использовании опции , поскольку при этом очень многое пишется в файл протокола. Непериодические изменения, обновления и удаления могут уменьшить производительность на 5-10%. Производительность может сильно понизиться на обновлениях, требующих большого числа одновременных изменений.
Опция может использоваться, для копирования базы данных. Обратите внимание, что ISAM журналы могут стать ОЧЕНЬ большими.
Каждая операция UPDATE, DELETE и INSERT имеет заголовок в 13 байтов дополнительно к команде.
Каждая открытая таблица требует девять байтов плюс длина имени файла таблицы. Это необходимо только для таблиц, которые еще не в кэше таблиц.
Кроме того будут иметься одиннадцать байтов дополнительно для любых команд, которые кэшируют/блокируют таблицы. Эти события обычно вызваны внутренними командами mysql. Наиболее часто, когда используется SELECT.
Программа mysqld поддерживает следующие опции командной строки:
-\?, —help | Справка |
-#, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-b, —basedir=[path] | Полное имя каталога в который установлен пакет. |
-h, —datadir [homedir] | Полное имя каталога в котором хранятся базы данных. |
-l, | Имя файла протокола запросов к базам данных и подключений. |
Имя файла протокола изменений isam. | |
-O, var=option | Установить переменную. См. ниже. |
-L, —language=[language] | Значение по умолчанию ‘english/’. Может быть так же ‘swedish/’, ‘germany/’,’french/’ или ‘czech/’. Текущий список можно посмотреть в подкаталог share/mysql каталога, в который установлен MySQL. |
-P, —port=[port] | Порт для соединения. |
-T, | Вывести отладочную информацию. |
Не использовать новые (возможно, глючные) возможности этой версии. | |
Игнорировать таблицы предоставления доступа. Это дает любому ПОЛНЫЙ доступ ко всем таблицам. | |
Не использовать блокировку системы. Может дать лучшую эффективность, но не должен использоваться вместе с isamchk. ТО ЕСТЬ, сначала остановите сервер. | |
Эта опция заставит mysqld принимать адреса IP только тех серверов, которые явно указаны в базе данных привилегий mysql. DNS можно более или менее просто хакнуть, а эта опция позволяет избежать ряда проблем, если прикладная программа требует высокого уровня защиты. | |
Использовать подключения только через интерфейс localhost. Эта опция не будет работать с MIT потоками. Если подключения к базе данных будут только локальные, то использование этой опции защитит от создания удаленных подключений. | |
Пропустить возможно опасные оптимизации. | |
—socket=[socket] | Имя сокет-файла для MySQL. Недоступно при использовании версии MySQL, скомпилированной с MIT потоками. |
ПРИМЕР:
Если опция -h не определена, mysql будет считать, что основной каталог = «/my/data/sql/mysql» .
Все базы данных размещены в каталоге [homedir]/[имя базы данных] .
Опция -l должна использоваться осторожно. Когда используется сервер, с большим объемом транзакций, этот файл может стать большим очень быстро. Если Вы не определяете имя logfile, при использовании опции -l mysqld будет писать протокол в файл [homedir]/[hostname].log .
Опция -O позволяет Вам определять значения для следующих параметров:
Имя | Значение по умолчанию |
---|---|
back_log | 5 |
keybuffer | 1048568 |
max_allowed_packet | 65536 |
net_buffer_length | 8192 |
max_connections | 90 |
table_cache | 64 |
recordbuffer | 131072 |
sortbuffer | 2097144 |
max_sort_length | 1024 |
Информация относительно того, что эти значения делают, и как поднять эффективность mysqld, находится здесь.
Дамп содержания базы данных.
mysqldump [OPTIONS] [database [table [field]]]
Программа mysqldump используется для создания дампа содержания базы данных MySQL. Она пишет инструкции SQL в стандартный вывод. Эти инструкции SQL могут быть переназначены в файл. Можно резервировать базу данных MySQL, используя mysqldump, но при этом Вы должны убедиться, что в этот момент с базой данных не выполняется никаких других действий. А то mysqldump Вам такого нарезервирует.
Программа mysqldump поддерживает следующие параметры (Вы можете использовать короткую или подробную версию):
-#, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-?, —help | Справка. |
-c, | Генерируйте полные инструкции insert (не исключая значений, которые соответствуют значениям столбца по умолчанию). |
-h, —host=[hostname] | Соединиться с сервером hostname. |
-d, | Экспорт только схемы информации (исключая данные). |
-t, | Экспорт только данных, исключая информацию для создания таблицы. Противоположность -d. |
-p, —password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-q, —quick | Не буферизовать результаты запроса, дамп выдать непосредственно к STDOUT. |
-u, —user=[username] | Имя пользователя. Если не задано, используется текущий логин. |
-v, —verbose | Вывести подробную информацию относительно различных стадий выполнения mysqldump. |
-P, —port=[port] | Порт для связи. |
-V, —version | Информация о версии. |
Вы можете направить вывод mysqldump в клиентскую программу MySQL, чтобы копировать базу данных. ПРИМЕЧАНИЕ: Вы должны убедиться, что база данных не изменяется в это время, иначе Вы получите противоречивую копию!
mysqladmin create foo
mysqldump mysql | mysql foo
Показать информацию о сервере, базе данных или таблице.
mysqlshow [OPTIONS] [database [table [field]]]
Программа mysqlshow может использоваться, чтобы показать, с какими базами данных MySQL работает, какие таблицы данная база данных содержит, и какие поля есть в таблице в данной базе данных.
Программа mysqlshow поддерживает следующие параметры (Вы можете использовать короткую или подробную версию):
-#, —debug=[options] | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. Как мне надоела эта опция. |
-?, —help | Справка. |
-h, —host=[hostname] | Связаться с сервером hostname. |
-k, —key | Вывести ключ(и) для таблиц(ы). |
-p, —password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-u, —user=[username] | Имя пользователя. Если не задано, используется текущий логин. |
-P, —port=[port] | Порт для связи. |
-V, —version | Информация о версии. |
mysqlshow без аргументов покажет все базы данных. mysqlshow с именем базы данных покажет все таблицы в ней. mysqlshow с именем базы данных и именем таблицы покажет схему этой таблицы.
Если последний параметр содержит ‘?’ или ‘*’, то они используются как подстановочные знаки.
mysqlshow test ‘a*’
показать список всех таблиц в базе данных test, начиная с ‘a’.
mysqlshow по существу идентичен программе mSQL msqlshow. СУБД MySQL обеспечивает, подобные функциональные возможности посредством команд языка SQL SHOW и DESCRIBE .
Проверка, восстановление, управление и сбор статистики по таблицам MySQL.
isamchk [-?adeiqrsvwzIV] [-k #] [-O xxxx=size] [-Si] [-Sr #] [-O keybuffer=#] [-O readbuffer=#] [-O writebuffer=#] [-O sortbuffer=#] [-O sort_key_blocks=#] files
Программа isamchk используется для проверки непротиворечивости таблиц и устранения любых проблем, которые это может вызвать. Isamchk может также использоваться, чтобы усилить таблицы в базах данных, которые содержат BLOB или поля символов переменной длины. Это необходимо только, если Вы часто добавляете и удаляете записи из этих таблиц.
Необходимо остановить СУБД MySQL перед запуском isamchk с единственным переключателем -r .
Вообще, используйте переключатель -rq для ремонта таблицы, потому что он выполняет «оперативный» ремонт. Для такого ремонта не нужно временного места в памяти, таким образом он проходит быстро, так как isamchk не копирует файл данных.
Опции программы isamchk :
-# | Вывести в протокол отладочную информацию. В общем виде ‘d:t:o,filename`. Подробности в главе о библиотеке отладки. |
-? | Справка. |
-a | Анализ. Используется для для оптимизации размещения таблиц. |
-d | Информация о таблице. |
-e | Расширенная проверка. При запуске с этой опцией надо остановить демон mysqld. |
-f | Принудительно создать временный файл. Эта опция вызовет , если таблица разрушена. |
-k# | Используемые ключи. |
-i | Дополнительная информация. |
-q | Быстрая проверка. |
-r[o] | Восстановление, Эта опция также уплотнит внутренние индексы B-Tree, используемые MySQL. Используйте эту опцию, чтобы уменьшить место, занимаемое таблицей, за счет удаления неиспользуемых индексов. |
-s | Работать молча. |
-u | Распаковать упакованный файл. |
-v | Подробный вывод. Используется вместе с другими параметрами, чтобы получить большее количество информации. Можно задать большее количество символов v для повышения объема выдаваемой информации (например, vv). |
-w | Ждать, если таблица заблокирована. |
-I | Справка. |
-S[ir]# | Сортировать индекс/записи по ключу #. Эта опция оптимизирует размещение данных в таблице. |
-V | Информация о версии. |
-O var=# | Опция оптимизации var=#[k][m] |
Можно использовать вторую опцию ‘ -q ‘, чтобы использовать старый файл данных. -ro использует старый метод восстановления: медленнее, но надежнее -r . -r может исправить почти все ошибки, кроме уникальных ключей, которые оказались все же не уникальными. УБЕДИТЕСЬ, ЧТО ДЕМОН MYSQLD НЕ ЗАПУЩЕН, ЕСЛИ ИСПОЛЬЗУЕТЕ ЭТУ ОПЦИЮ! Если -f задан при проверке таблицы, то таблицы с ошибками будут автоматически исправлены.
Имеется несколько примеров. См. Подробно о таблицах.
isamchk -r [table_name] | Убрать все дырки, которые сформировались из-за использования BLOBS или VARCHARS. Также установить какие еще есть проблемы. |
isamchk -ei [table_name] | Проверить таблицу и отобразить статистику. |
isamchk [table_name] | Найти большинство ошибок. |
isamchk -rq [table_name] | Обновить только индексный файл. Быстро, но не исправляет ошибки в файле данных. |
демона mysqld . |
Файл file_name будет хранить протокол всех изменений для всех таблиц. Программа isamlog может быть использована для получения информации об этом файле и обновить все таблицы и базы данных.
-? or -I | Справка. |
-V | Информация о версии. |
-c # | Выполнить только # команд. |
-f # | Максимальное число открытых файлов. Если откроется больше чем # файлов, то лишние будут автоматически закрыты и вновь открыты по мере необходимости. |
-F [path] | Файл протокола ISAM содержит полный путь к таблицам. Вы можете использовать эту опцию, чтобы отменить сохраненный путь. |
-F ‘/var/mirror/’ заставит isamlog работать с файлами в /var/mirror, а не с теми, которые указаны в сохраненном пути.
isamlog -R /usr/local/data/mysql/user.ISM 1234
Выведет все изменения в таблице /usr/local/data/mysql/user, которые найдены в позиции 1234. Это полезно для ситуаций, в которых Вы имеете разрушенную запись в известной позиции. Вы, возможно, получили эту информацию посредством или из isamchk.
Если Вы укажете позицию -1, будут обработаны все записи.
Скрипт для запуска демона mysqld.
safe_mysqld [options to mysqld]
Этот скрипт обычно выполняется при начальной загрузке, чтобы запустить mysqld. Если Вы не хотите, чтобы ваш DATADIR был помещен в иерархии каталога MySQL, что и mysqld, Вы должны подправить DATADIR в этом скрипте.
Генерирует файлы сообщений об ошибках на национальном языке.
comp_err [-?] [-I] [-V] fromfile[s] tofile
Эта программа используется для компиляции текстовых файлов которые содержат соответствие между кодами ошибок mysql и текстовыми сообщениями об этих ошибках в формат, который понимает mysql. Это нужно для изменения уже существующего файла сообщений или генерации такого файла для другого языка.
comp_err share/english/errmsg.txt share/english/errmsg.sys
Выполняет начальное преобразование mSQL скрипта в MySQL.
msql2mysql [filename]
Скрипт msql2mysql используется как первый шаг при портировании msql скриптов в MySQL. Просто введите:
msql2mysql something.c >something.mysql.c’
Вам придется, конечно, многое исправить, но это хорошее начало. Подробнее о портировании mSQL-кода в MySQL рассказано здесь.
Генерирует отчет об ошибках.
mysqlbug [address]
Пожалуйста используйте этот скрипт при сообщении об ошибках в MySQL. Он генерирует форму для Вас, которую для заполнения помещает в любой текстовый редактор, указанный в переменной $VISUAL (Vi по умолчанию). Форма будет содержать автоматически сгенерированную информацию относительно вашей системы, включая версии OS и MySQL и архитектуру. Когда Вы закончите, форма будет отправлена по почте в список рассылки MySQL. Вы можете факультативно определять альтернативный адрес на который следует послать сообщение об ошибке, определяя [адрес].
Выводит короткое текстовое объяснение числового кода ошибки.
$ perror [-?vIV] [errorcodes]
Программа perror предоставляет короткие текстовые объяснения числовых кодов ошибок, возвращаемых системой или СУБД MySQL.
Программа perror поддерживает опции:
-? or -I | Справка. |
-v | Подробная информация. |
-V | Информация о версии. |
replace [-?svIV] from to from to . — [files]
Программа program используется скриптом msql2mysql. Replace может быть использована для замены строки на месте в файле или получать строку через канал (пайп), производить замену и выводить результат в STDOUT.
Допустимы следующие опции:
-? | Справка. |
-s | Работать молча (никаких статусных сообщений). |
-v | Подробная информация о ходе работы (выводить дополнительные сообщения). |
replace Apple Orange somefile
Заменит все вхождения Apple на Orange в файле somefile.
cat INFILE | replace Apple Orange Blimp Train > OUTFILE
Все вхождения Apple в файле INFILE будут заменены на Orange и результат выведен в файл OUTFILE. В то же время, все вхождения Blimp в файле INFILE будут заменены на Train и тоже выведены в файл OUTFILE. Таким образом, можно заменять более чем одно выражение за один проход.
Вы можете использовать специальные символы во входных строках:
\^ | Соответствует началу строки. |
\$ | Соответствует концу строки. |
\b | Соответствует пробелу. Может появляться или отдельно, или в начале, или в конце лексемы. Если \b используется в конце лексемы, следующие замены начнутся после пробела. \b соответствует только пробелу. |
Replace простая и очень полезная утилита с большими потенциальными возможностями использования в MySQL.
Эта команда, вероятно, полезна только на системах, которые не имеют, команды which, встроенной в оболочку, или доступной как команда. Выводит только первую найденную команду.
Послать сигнал процессу, который соответствует образцу.
zap [-signal] [-?Ift] pattern
По умолчанию zap запросит подтверждение для каждого подходящего процесса.
prompt> zap -t "my" UID PID PPID C STIME TTY TIME CMD root 1217 1 1 15:21:30 pts/4 0:00 /bin/sh /usr/local/pkg/mysql-3.20.15/bin/safe_mysqld root 1224 1217 3 15:21:32 pts/4 0:01 /usr/local/pkg/mysql-3.20.15/libexec/mysqld -b /usr/local/pkg/mysql-3.20.15 -h
Программа zap поддерживает опции:
-I or -? | Справка. |
-f | Послать сигнал без запроса подтверждения. |
-t | Вывести список процессов, соответствующих образцу, но не сигнал им не посылать. |
В качестве сигнала допускается любой сигнал системы unix. По умолчанию сигнал = 9 (завершить процесс).
Работаем с MySQL через командную строку
Если на экране появляется приветствие mysql, то всё прошло ok.
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 344 Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu) Copyright (c) 2000, 2012, 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>
Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».
Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:
show databases;
Результатом будет что то вроде этого:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | jeka | | linky | | mysql | | performance_schema | | phpmyadmin | | test | +--------------------+ 7 rows in set (0.00 sec)
Выбрать базу данных jeka:
mysql> use jeka Database changed
Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):
mysql> show tables;
Просмотреть структуру таблицы (имена и тип полей):
mysql> describe post_estimations; +------------+---------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+---------+-------+ | post_id | int(10) unsigned | YES | MUL | NULL | | | user_id | int(10) unsigned | YES | MUL | NULL | | | estimation | float(2,1) unsigned | NO | | NULL | | | date | int(10) unsigned | NO | | NULL | | +------------+---------------------+------+-----+---------+-------+ 4 rows in set (0.00 sec)
Достать информацию о юзере с >
mysql> SELECT * FROM users WHERE > Бэкап структуры таблицы, а точнее sql-запрос на её создание
show create table table_name;
Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:
select * from update__v4_errors where >
Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:
show processlist;
Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.
Подробнее о том, как изменять структуру mysql-таблиц (alter table).
Что делать если вижу знаки вопросов вместо текста в MySQL?
Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:
[mysqld] init-connect='SET NAMES utf8'
Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:
mysql> set names utf8; Query OK, 0 rows affected (0.00 sec)
Как сделать бэкап базы mysql через консоль Linux?
Сделать бэкап базы database в файл dump_name.sql
mysqldump -u [username] -p [password] [database] > [dump_name.sql]
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.
Развернуть базу из файла через командную строку
mysql -u [username] -p [password] [database] < [dump_to_restore.sql]
[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу
Сделать дамп структуры одной таблицы mysql (без данных):
mysqldump -u[user] -p[password] -h[host] [database] [table_name] --no-data > /path/dump_name.sql
Например, задампим таблицу users из базы данных mydatabase:
mysqldump -uroot mydatabase users > users.dump.sql
Развернуть mysql-dump в БД с именем database_name:
mysql -uroot database_name < users.dump.sql
Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:
mysql -uroot -e 'show tables' database_name && echo done
mysql> show variables like '%incr%';
Заключение
Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.
Поисковые запросы , по которым приходили пользователи
Дата добавления: 11 лет назад
mysql
Похожий контент:
- Как сделать копию структуры таблицы в mysql? Решено!
- Как добавить AI в существующую таблицу MySQL? 2 ответа
- Установить mysql 5.6 на travis Решено!
- Как переименовать таблицу в MySQL? Решено!
- mysqldump только структуры таблиц 1 ответ
- MySQL - изменение полей, структуры таблицы 0 комментариев
- Доступ к mysql из-вне4 комментария
- Mysql перенос таблиц из одной базы данных в другую 0 комментариев
- MacOS сбросить root пароль для MySQL 0 комментариев
- Анализ производительности MySQL с использованием performance_schema 0 комментариев
Комментарии 2
viktor 11 лет назад
Последнее время я использую Valentina Studio для работы с MySQL. Очень хороший и бесплатный инструмент, рекомендую посмотреть. http://www.valentina-db.com/en/valentina-studio-overview
root 11 лет назад
Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.
eugene-PC:www eugene$ eugene$ sudo rpm -ivh ~/Загрузки/vstudio_x64_5_lin.rpm
rpm: RPM should not be used directly install RPM packages, use Alien instead!
rpm: However assuming you know what you are doing.
ошибка: Неудовлетворенные зависимости:
ld-linux-x86-64.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
ld-linux-x86-64.so.2(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6()(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.3)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libc.so.6(GLIBC_2.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2()(64bit) нужен для vstudio-5.3.0-2.x86_64
libdl.so.2(GLIBC_2.2.5)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.0)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgcc_s.so.1(GCC_3.4)(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk-x11-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libgdk_pixbuf-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64
libglib-2.0.so.0()(64bit) нужен для vstudio-5.3.0-2.x86_64