Как выполнить sql скрипт linux

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

День добрый, друзья! 🙂 Для подключения к mysql наберите

  • h — хост базы данных, если коннектимся к локальной базе (по ip 127.0.0.1), этот параметр можно опустить
  • u — имя пользователя
  • p — пароль, его нужно будет ввести после нажатия enter

Например, если нужно законнектиться к локальной быдухе под root`ом и пароль у него не установлен (пустой пароль — это плохо), достаточно написать

Если на экране появляется приветствие mysql, то всё прошло ok.

Для выхода из командной строки mysql можно написать exit, в linux достаточно нажать ctrl+C. Теперь можно писать любые mysql-запросы. Чтобы запрос выполнился, в конце обязательно нужно поставит точку с запятой «;». При написании длинных запросов удобно делать enter`ом переход на следующую строку. А после полного написание запроса поставить «;» и нажать «enter».

Для работы с конкретной базой данных нужно её выбрать с помощью оператора use. Показать все базы данных:

Результатом будет что то вроде этого:

Выбрать базу данных jeka:

Посмотреть названия всех таблиц в конкретной базе данных (после выполнения use):

Просмотреть структуру таблицы (имена и тип полей):

Достать информацию о юзере с >

Бэкап структуры таблицы, а точнее sql-запрос на её создание

Если в конце запроса поставить не ; а \G, то результат будет показан другим образом — иногда весьма удобно, если таблица имеет много полей:

Посмотреть, какие запросы выполняются в данный момент на сервере MySQL:

Учтите, что будут отображены еще не выполненные (активные) запросы, поэтому show processlist; актуальная команды только для нагруженных БД, в других случаях маловероятно, что команда что то покажет.

Подробнее о том, как изменять структуру mysql-таблиц (alter table).

Что делать если вижу знаки вопросов вместо текста в MySQL?

Это проблема с кодировкой. Вероятно в my.ini файле mysql-сервера не добавлено:

Нужно добавить в .ini файл либо выполнить в консоли команду «SET NAMES utf8», после чего во время текущей сессии отображаться русский текст в mysql-консоли будет без проблем:

Как сделать бэкап базы mysql через консоль Linux?

Сделать бэкап базы database в файл dump_name.sql

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_name.sql] – имя файла, дампа на выходе.

Развернуть базу из файла через командную строку

[username] – имя пользователя который имеет доступ к базе данных.
[password] – пароль пользователя.
[database] – имя базы данных.
[dump_to_restore.sql] – имя файла, из которого поднимаем базу

Сделать дамп структуры одной таблицы mysql (без данных):

Например, задампим таблицу users из базы данных mydatabase:

Развернуть mysql-dump в БД с именем database_name:

Ещё одна интересная штука. Выполнять из консоли, не требуется предварительно подключаться к mysql (mysql>). Вывести список таблиц базы данных, не подключаясь непосредственно к mysql:

Заключение

Может показаться, что писать запросы в командной строке не удобно. Но это заблуждение. На слабых машинах phpmyadmin работает не так шустро как хотелось бы. Тем более не на всех серверах стоят морды с phpmyadmin, adminer и т.д. Linux + mysql в терминале реально повысили мою производительность.

  • Как сделать копию структуры таблицы в mysql? Решено!
  • Как обновить AI в mysql? Решено!
  • Узнать, насколько slave отстает от master в mysql Решено!
  • mysqldump только структуры таблиц 1 ответ
  • ERROR 9006: ProxySQL Error: connection is locked to hostgroup 10 but trying to reach hostgroup 11 Решено!
  • MySQL — изменение полей, структуры таблицы 0 комментариев
  • Запросы инъекции для mysql 0 комментариев
  • Доступ к mysql из-вне3 комментария
  • Mysql перенос таблиц из одной базы данных в другую 0 комментариев
  • Анализ производительности MySQL с использованием performance_schema 0 комментариев
Читайте также:  Windows управляющие элементы диалоговых окон

Комментарии 2

Viktor, спасибо. Судя по скринам, штука интересная.
Правда, уж больно много зависимостей она имеет.. Как решу проблему с зависимостями, отпишусь.

eugene-PC:www eugene$ eugene$ sudo rpm -ivh

Источник

MySQL: Run Query from Bash Script or Linux Command Line

Sometimes it is needed to run some MySQL queries from the Linux command-line interface without accessing the interactive MySQL prompt.

For example, when it is required to schedule a backup of MySQL database or to automate execution of some SQL queries with a Bash script.

In this article i will show the most useful, from my point of view, options of the MySQL command-line client and show how to run multiple SQL queries to a database from a Bash script.

Cool Tip: List MySQL users, their passwords and granted privileges from the command-line prompt! Read more →

MySQL: Execute SQL Queries From The Linux Shell

Execute SQL query from the Linux command-line:

-pPASSWORD: This is not a typo! There should not be a space between your password and the -p when you pass it on the command-line!

Run SQL query on the explicitly specified database:

Run SQL query on the explicitly specified host:

Suppressing column headings:

Suppress table borders:

Save the output to a file:

Cool Tip: Create a MySQL database and GRANT ALL PRIVILEGES on it to a user! Simple and clear MySQL tutorial with good examples! Read more →

The most useful MySQL options when executing SQL queries from the Linux command-line or a Bash script:

Option Description
—user , -u The MySQL user name to use when connecting to the server.
—password , -p The password to use when connecting to the server.
—database , -D The database to use.
—host , -h Connect to the MySQL server on the given host.
—skip-column-names , -N Do not write column names in results.
—batch , -B Print results using tab as the column separator, with each row on a new line.

MySQL: Run SQL Queries From A Bash Script

The part tells the shell that i am going to enter multi-lines until the EOF tag.

Note that here shouldn’t be any spaces just before the second EOF tag, otherwise it will be considered as a part of the SQL query.

By the way, you can rename the EOF to anything you want, e.g. .

Cool Tip: Do you have a backup? You MUST have it! Backup MySQL databases from the command-line! This is really easy! Read more →

Use the following construction if you need to run multiple SQL queries from a Bash script:

Источник

Записная книжка ежа

Шпаргалка по SQL*Plus

SQL*Plus — программа для работы с СУБД Oracle посредством командной строки. Используя SQL*Plus можно выполнять команды SQL и PL/SQL в интерактивном режиме или используя сценарий.

Читайте также:  Индикатор заряда батареи для ноутбука windows 10

Основное преимущество SLQ*Plus — доступность, т.к. инструмент доступен практически всегда, когда в системе установлен Oracle. При этом это достаточно мощный инструмент, используя который можно решать различные задачи на удаленных машинах.

К написанию этой статьи меня подтолкнула книга «Oracle SQL*Plus: The Definitive Guide, 2nd Edition», написанная Jonathan Gennick. Как обычно, появилось желание систематизировать информацию и представить ее в удобном виде.

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

Область возможного использования SQLplus при этом гораздо шире, например — построение отчетов, в том числе в формате HTML.

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

Выполнить несколько строк кода (не передавая отдельный файл со скриптом), unix:

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

Запрос может состоять из нескольких строк, содержать комментарии, но не может содержать внутри пустые строки.

Запрос может быть выполнен тремя способами:

  • точка с запятой в конце запроса
  • строка с слешем «/» после запроса
  • пустая строка после запроса (будет помещен в буфер, но не выполнен немедленно)

Выполнение PL/SQL блоков

Пример PL/SQL блока:

Правила выполнения PL/SQL блоков:

  • Первое слово в PL/SQL блоке должно быть из списка: BEGIN, DECLARE, CREATE PROCEDURE,
    CREATE FUNCTION, CREATE TRIGGER, CREATE PACKAGE, CREATE TYPE, CREATE TYPE BODY. Регистр не важен.
  • Блок может состоять из нескольких строк
  • Можно вставлять /* комментарии */, они также могут быть на несколько строк
  • Пустые строки не разрешены внутри блока

Сигнал к выполнению блока может быть подан двумя путями:

  • Строка, содержащая только слеш «/» после блока — выполнить сразу
  • Строка, содержащая точку «.» после блока — поместить в буфер. Содержимое буфера может быть выведено командой LIST и выполнено, путем указания одиночного слеша «/» или команды RUN.

Одиночное выражение PL/SQL может быть выполнено, используя:

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

Работа с переменными

Переменные могут быть заданы двумя способами:

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

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

ACCEPT можно использовать для валидации:

Для ввода дат в определенном формате:

SQL*Plus поддерживает четыре типа переменных: CHAR, NUMBER, BINARY_FLOAT, and BINARY_DOUBLE. При вводе с клавиатуры переменная будет типа CHAR.

Несмотря на это, можно использовать NEW_VALUE, чтобы задать числовую переменную, полученную как результат запроса.

Bind-переменные могут использоваться для передачи данных между PL/SQL и SQL блоками:

Присвоить bind-переменной значение &-переменной:

Вывести значение bind-переменной:

Присвоить &-переменной значение bind-переменной:

Получаем OUT-параметр процедуры в bind-переменную:

Условное выполнение в SQLplus:

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

Настройки выполнения скриптов

Действуют на протяжении сессии в SQLplus.

Запомнить настройки перед выполнением скрипта и вернуть обратно по завершении выполнения:

Другие команды

Взаимодействие с unix shell

Обработать результат выполнения SQLplus-скрипта в Unix:

Вернуть код ответа в Unix:

Вывод из скрипты в переменную командной строки unix:

Источник

Создание и запуск заданий агента SQL Server в Linux

Применимо к: SQL Server (все поддерживаемые версии) — Linux

Задания SQL Server используются для регулярного выполнения одинаковой последовательности команд в базе данных SQL Server. В этом учебнике представлен пример создания задания агента SQL Server в Linux с помощью Transact-SQL и SQL Server Management Studio (SSMS).

  • Установка агента SQL Server в Linux
  • Создание задания для выполнения ежедневного резервного копирования базы данных
  • Планирование и запуск задания
  • Выполнение тех же действий в SSMS (необязательно)
Читайте также:  Download windows для ноутбука

Известные проблемы с агентом SQL Server в Linux см. в заметках о выпуске.

предварительные требования

Для работы с этим руководством необходимо выполнить следующие условия.

  • Компьютер Linux со следующими необходимыми компонентами:
    • SQL Server (RHEL, SLES или Ubuntu) с программами командной строки.

Следующие компоненты являются необязательными.

  • Компьютер Windows с SSMS:
    • SQL Server Management Studio для дополнительных действия с SSMS.

Включение агента SQL Server

Чтобы использовать агент SQL Server в Linux, нужно сначала включить его на компьютере, где уже установлен SQL Server.

  1. Чтобы включить агент SQL Server, сделайте следующее.
  1. Перезапустите SQL Server с помощью следующей команды.

Начиная с версии SQL Server 2017 с накопительным пакетом обновления 4, агент SQL Server включается в пакет mssql-server и по умолчанию отключен. Сведения о настройке агента в версиях, предшествующих накопительному пакету обновления 4, см. в статье Установка агента SQL Server в Linux.

Создание образца базы данных

Чтобы создать образец базы данных с именем SampleDB, выполните указанные ниже действия. Эта база данных используется для задания ежедневного резервного копирования.

На компьютере Linux откройте сеанс терминала bash.

Используйте sqlcmd для выполнения команды CREATE DATABASE Transact-SQL.

Убедитесь, что база данных создана, выведя список баз данных на сервере.

Создание задания с помощью Transact-SQL

Приведенные ниже шаги позволяют создать задание агента SQL Server в Linux с помощью команд Transact-SQL. Это задание выполняет ежедневное резервное копирование образца базы данных SampleDB.

Для выполнения этих команд можно использовать любой клиент T-SQL. Например, в Linux можно использовать sqlcmd или Visual Studio Code. С удаленного сервера Windows Server вы также можете выполнять запросы в SQL Server Management Studio (SSMS) или использовать пользовательский интерфейс для управления заданиями, как описано в следующем разделе.

Используйте sp_add_job для создания задания Daily SampleDB Backup .

Вызовите sp_add_jobstep, чтобы создать шаг задания, создающий резервную копию базы данных SampleDB .

Затем создайте ежедневное расписание для задания с помощью sp_add_schedule.

Подключите расписание задания к заданию с помощью sp_attach_schedule.

Используйте sp_add_jobserver, чтобы назначить задание целевому серверу. В этом примере целевым объектом является локальный сервер.

Запустите задание с помощью sp_start_job.

Создание задания с использованием SSMS

Кроме того, с помощью SQL Server Management Studio (SSMS) в Windows можно удаленно создавать задания и управлять ими.

Запустите SSMS в Windows и подключитесь к своему экземпляру SQL Server в Linux. Дополнительные сведения см. в статье Управление SQL Server в Linux с помощью SSMS.

Убедитесь, чтобы создан образец базы данных с именем SampleDB.

Убедитесь, что агент SQL установлен и настроен правильно. Найдите знак «плюс» рядом с агентом SQL Server в обозревателе объектов. Если агент SQL Server не включен, попробуйте перезапустить службу mssql-server в Linux.

Присвойте заданию имя и создайте шаг задания.

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

Создайте расписание задания.

Запустите ваше задание.

Next Steps

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

  • Установка агента SQL Server в Linux
  • Использование Transact-SQL и системных хранимых процедур для создания заданий
  • Создание задания, выполняющего ежедневное резервное копирование базы данных
  • Использование пользовательского интерфейса SSMS для создания заданий и управления ими

Далее вы можете изучить другие возможности для создания заданий и управления ими.

Источник

Оцените статью