Как выполнить MySQL запрос в скрипте командной строки

Когда вы пишите скрипт командной строки как часть некоторой пакетной обработки, бывают ситуации, когда скрипту нужно обработать данные, хранящиеся на отдельном MySQL сервере. Скриптовые языки общего назначения, вроде Perl и Python, имеют отдельные MySQL модули или интерфейсы для использования в этой ситуации, но скриптовые языки командной строки не имеют такого интерфейса для MySQL. Тем не менее, есть способы выполнить простые MySQL запросы и обработать результат посредством скрипта командной строки.

Далее инструкция, как сделать MySQL запрос в скрипте командной строки.

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

Предположим, что так и есть, в этом случае вы можете выполнить следующий шелл-скрипт. Пример кода, представленный здесь, выполняет простой MySQL вызов SELECT и обрабатывает результат, который, потенциально, содержит несколько строк.

#!/bin/bash

result=`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -e "select id from mydb.mytable where myattribute = 3"`

items=$(echo $result | tr " " "n")

for item in $items

do

echo "$item"

done

 

В этом отрывке кода переменная "result" будет хранить множество записей таблицы, объединённых белым пробелом. Поэтому вам нужно разделить строку результата на индивидуальные строки, помещённые в "items" как массив. Наконец, обработайте в цикле индивидуальные строки так, как вы хотите.

Оставьте комментарий