Как ввести нового пользователя в MariaDb/Mysql через сценарий?

У меня есть сценарий, которые устанавливают программное обеспечение в новом Linux ОС 16.10.

Скажем, файл называют insert_app.txt.

Я называю этот сценарий как это:

# source  insert_app.txt.

Затем программное обеспечение установлено в не интерактивном режиме.

Это - часть, которая устанавливает MariaDb

sudo apt-get update
sudo apt-get install -y mariadb-server

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

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'psswordUser1';
GRANT ALL PRIVILEGES ON * . * TO 'user1'@'localhost';
FLUSH PRIVILEGES;

Чтобы сделать это, я должен ожидать все программное обеспечение, которое будет установлено, затем войдет в базу данных как mysql-uroot-pPassword, затем я выполняю предыдущую команду для создания пользователей.

Мой вопрос:

Существует ли способ поместить эти команды в тот же конвейер? Я имею в виду, как это:

....

sudo apt-get update
sudo apt-get install -y mariadb-server
mysql -uroot -pPsswrd
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'psswordUser1';
GRANT ALL PRIVILEGES ON * . * TO 'user1'@'localhost';
FLUSH PRIVILEGES;

...
COntinue install the softwares...

Это не работает.

Некоторая справка?

0
задан 22 November 2016 в 17:50

2 ответа

Это - то, как я сделал это на 16,04 или 16.10 с тех пор:

  • mariaDB после установки, если Вы не настроили ничто больше это только, предоставляет доступ для укоренения. Таким образом, необходимо было бы использовать sudo выполнять его. С этим я имею в виду (Предположение, что пароль является 'x'):

    sudo mysql -uroot -px
    

    Вместо

    mysql -uroot -px
    

Теперь для выполнения целой строки Вы сделали бы следующее. В моем случае я создаю пользователя, названного 'cyrex' с паролем 'x':

 sudo mysql -uroot -px -e "CREATE USER 'cyrex'@'localhost' IDENTIFIED BY 'x'; GRANT ALL PRIVILEGES ON *.* TO 'cyrex@localhost'; FLUSH PRIVILEGES;"

или без Пользователя и Параметров пароля:

 sudo mysql -e "CREATE USER 'cyrex'@'localhost' IDENTIFIED BY 'x'; GRANT ALL PRIVILEGES ON *.* TO 'cyrex@localhost'; FLUSH PRIVILEGES;"

После выполнения этого можно протестировать путем выполнения следующего без sudo части:

mysql -ucyrex -px

и это будет работать. Я предоставил изображение, таким образом, Вы видите беспорядок, так как я привык к MySQL, работающему, не имея необходимость делать это, но с MariaDB это изменяется немного.

enter image description here

Можно также изменить пароль и некоторые опции путем выполнения

mysql_secure_installation или mysql_setpermission который может помочь в конфигурировании настроек по умолчанию.

1
ответ дан 28 September 2019 в 03:19

попробуйте -e параметр mysql клиента:

mysql -uroot -pPsswrd -e "CREATE USER 'user1'@'localhost' IDENTIFIED BY 'psswordUser1';"
mysql -uroot -pPsswrd -e "GRANT ALL PRIVILEGES ON * . * TO 'user1'@'localhost';"
mysql -uroot -pPsswrd -e "FLUSH PRIVILEGES;"

это работало бы даже с одной командой:

mysql -uroot -pPsswrd -e "CREATE USER 'user1'@'localhost' IDENTIFIED BY 'psswordUser1'; GRANT ALL PRIVILEGES ON * . * TO 'user1'@'localhost'; FLUSH PRIVILEGES;"
1
ответ дан 28 September 2019 в 03:19

Другие вопросы по тегам:

Похожие вопросы: