У меня есть сценарий, которые устанавливают программное обеспечение в новом 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...
Это не работает.
Некоторая справка?
Это - то, как я сделал это на 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 это изменяется немного.
Можно также изменить пароль и некоторые опции путем выполнения
mysql_secure_installation
или mysql_setpermission
который может помочь в конфигурировании настроек по умолчанию.
попробуйте -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;"