Похоже, вы продублировали свой вопрос вместо редактирования исходного .
Если вы отредактировали bind-address
, как указано в другом вопросе , ваша служба не должна прослушивать другой IP-адрес, кроме того, который настроен для этого параметра.
Во-вторых, вам не разрешено подключаться к этому серверу, поскольку вам также необходимо предоставить доступ на уровне приложения MySQL.
В локальной оболочке этого удаленного сервера откройте приглашение mysql
и выполните следующее
`GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';`
Кажется, вам не хватает двух основных вещей в конфигурации сети MySQL :и авторизации/разрешении на уровне приложения. Я предлагаю вам изучить эту технологию дальше.
Погуглите еще по ERROR 1130 (HY000): Host is not allowed
. Вы будете удивлены тем, что ПЕРВЫЙ РЕЗУЛЬТАТ этого поиска также приведет вас к StackExchange. Здесь:ОШИБКА 1130 (HY000 ):Хосту '' не разрешено подключаться к этому серверу MySQL [дубликат]
Вы не показали содержимое файла в своем «домашнем местоположении», но я предполагаю, что он не содержит файлов, соответствующих шаблону
XYZ.ABC.V.date-time.batch
Однако в этом случае глобус *
не будет расширен оболочкой, а вместо этого будет передан буквально вашей команде printf
. Вот почему вы получаете выходную строку, которую описываете.
Если вы хотите избежать этого, попробуйте установить
shopt -s nullglob
Затем, в случае, если выражение, содержащее *
, ничему не соответствует, оно будет расширено до пустой строки, а не будет буквально содержать *
.
Однако уже из этого поведения видно, что команда cd
в том виде, как вы ее используете, явно не имеет никакого эффекта. Вы можете более подробно объяснить , что вы пытаетесь достичь с помощью команды; тогда, возможно, участники могут помочь вам найти лучшее решение (вопрос о том, почему вы используете |
, например, уже поднимался в комментарии).
cmd1 | cmd2
Выполняется cmd1
и cmd2
одновременно из двух разных процессов, при этом выход cmd1
подключен к входу cmd2
через канал¹
Так:
cd /some/dir | printf '%s\n' some-glob
не имеет особого смысла. Это изменяет текущий рабочий каталог некоторого (эфемерного )процесса, в то же время печатая расширение одного глобуса в другом.
Он отправляет вывод cd
на printf
,но сначала cd
ничего не напечатает², и в любом случае printf
не читает свой ввод.
Вероятно, вы имели в виду:
cd /some/dir && printf '%s\n' some-glob
То есть измените рабочий каталог оболочки, а затем, если это cd
было успешным, распечатайте расширение этого глобуса.
Или (для того, чтобы cd
выполнялось в отдельном процессе и printf
вызывалось из того же процесса после изменения текущего каталога):
(cd /some/dir && printf '%s\n' some-glob)
(где (...)
запускает среду подоболочки, обычно реализуемую путем разветвления дочернего процесса оболочки, где изменения в среде, подобные сделанным cd
, ограничены по объему внутри этих(...)
).
¹ или пара гнезд с некоторыми накладками
² единственные случаи, когда он может вывести что-то на стандартный вывод, — это когда вы передаете -
в качестве аргумента (или -<n>
/ +<n>
с некоторыми оболочками )или косой чертой -меньше аргумента, в то время как $CDPATH
.