Как следует из предупреждения, похоже, что apk ожидает, что тег репозитория @edge
присутствует, но на самом деле он отсутствует в вашем файле /etc/apk/repositories
.
Чтобы добавить тег edge
и репозиторий, добавьте следующую строку в файл репозиториев:
@edge http://dl-cdn.alpinelinux.org/alpine/edge/main
Это включает пограничный репозиторий и помечает его тегом @edge
.
После этого запустите apk update
и попробуйте повторить установку MariaDB.
Дополнительные сведения о тегировании и закреплении репозитория Alpine см. в :
. Alpine Wiki -Пакеты и репозитории -Закрепление репозитория .
Строка в кавычках стала здесь документом:
<<END
CREATE EVENT $name ON SCHEDULE
AT Str_to_date('$date', '%Y-%m-%d %T.%f')
ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM $test;
END
Я успешно выполнил следующее в базе данных MariaDB:
export DATE='2020-10-28 14:00:00.000000'
export NAME=eventje
export TEST=test
mysql --password='xYzAbC' --database=ghp <<END
DROP EVENT $NAME;
CREATE EVENT $NAME ON SCHEDULE
AT Str_to_date('$DATE', '%Y-%m-%d %T.%f')
ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM $TEST;
END
Двойные -кавычки метки END
, которая идентифицирует начало здесь -документа. Затем используйте правильный синтаксис MySQL внутри здесь -doc -не экранируйте кавычки, если только они не будут экранированы нормально для MySQL
mysql --user='halloween' --password='ghost_123' --database='ghost_database' <<"END"
CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM "$test";
END
Обратите внимание, что я не пытался исправить ваш синтаксис SQL. Что касается меня, я не совсем уверен, что двойные -кавычки правильны для имен таблиц (или даже для строк ).
Если бы у вас не было никаких переменных для интерполяции, было бы правильно заключить -в одинарные кавычки идентификатор документа здесь -. (Заключение такое же, как и для строки.)
Мне удалось найти решение с помощью следующего скрипта:
Переменная $date заключена только в двойные кавычки
date='2020-10-31 00:00:00.000000'
#CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM '$test';
mysql --user=halloween --password='ghost_123' --database='ghost_database' <<END
use ghost_database;
CREATE EVENT myevent ON SCHEDULE AT "$date" ON COMPLETION NOT PRESERVE ENABLE DO SELECT * FROM ghost_database;
END
``````````````````
This script can be run separately if needed using an input argument:
In this example below the input argument is 'ghost'. It could technically lookup whatever variables or be passed the date variable in epoch and simply convert it.
`````````````````
while getopts i: option
do
case "${option}"
in
i) ghost=${OPTARG};;
esac