Возможно ли создать базу данных с дефисом в названии? Если да, то как? Спасибо
Приведу перевод ответа с enSO упомянутый в комментарии к вопросу пользователем @Yaant
Согласно документации mysql названия схем могут состоять из буквенно-числовых символов, нижнего подчеркивания и знака доллара. Для использования других ANSI-символов название таблицы необходимо заключать в одинарные обратные кавычки:
`database-name`
Но в bash они имеют другое значение и используются для подстановки команд. В bash также есть несколько типов строк - в двойных и одинарных кавычках. Разница между ними в том, что в двойных кавычках осуществляется обработка переменных и подстановка команд, а в одинарных нет. Таким образом можно использовать обратные одинарных кавычки вместе с семантикой mysql в одинарных кавычках:
mysql -e 'CREATE DATABASE `db-name`;'
но нужно экранировать их использование при использовании в двойных кавычках, чтобы bash не интерпретировал их как командные действия:
mysql -e "CREATE DATABASE \`table-db\`;"
Если вы хотите получить использование название базы данных хранящейся в переменной ее нужно поместить вне строки в одинарных кавычках, например так:
mysql -e "CREATE DATABASE \`$dbname\`;"
или так:
mysql -e 'CREATE DATABASE `'$dbname'`;'
Сборка персонального компьютера от Artline: умный выбор для современных пользователей