mysql как сделать запрос через скрипт bash - PullRequest
1 голос
/ 02 апреля 2020

Как сделать mysql оператор или запрос через bash скрипт ?? например создать пользователя и базу данных ?? я пытаюсь через bash скрипт выполнить простой mysql оператор


echo "insert database name"
read $db
echo "insert username "
read varname
echo "insert password for the user "
read -s varpass

sudo mysql -u root  -e <<EOF
CREATE DATABASE $db;
CREATE USER '$varname'@'localhost' IDENTIFIED BY '$varpass';
GRANT ALL ON $db.* TO '$varname'@'localhost' IDENTIFIED BY '$varpass' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
EOF

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете попробовать это.

test.sh

#!/bin/bash

echo "insert database name"
read db
echo "insert username "
read varname
echo "insert password for the user "
read -s varpass

sudo mysql -u root mysql<<EOF
CREATE DATABASE $db;
CREATE USER '$varname'@'localhost' IDENTIFIED BY '$varpass';
GRANT ALL ON $db.* TO '$varname'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
\q
EOF

Обратите внимание на изменения:

  • read $db был изменен на read db - $ был удален
  • Имя базы данных было добавлено до того, как <<EOF
  • Выход был заменен на \ q

Что если в вашей базе данных был пароль?

Вы можете создать файл ~/.my.cnf со следующим содержимым:

[client]
user=root
password=YourPassword123!!

Затем вы можете войти в базу данных mysql mysql с помощью команды mysql mysql. Используя это, вы можете изменить только строку <<EOF на:

mysql mysql<<EOF

Все остальное может остаться прежним.

...