2
我想流浪的规定,执行数据库上的一些查询来允许root登录任何主机,创建应用程序数据库,并创建应用程序的用户,这样的过程中执行一个脚本:逃离MySQL的报价在bash脚本
#!/usr/bin/env bash
sudo bash << EOF
export DEBIAN_FRONTEND=noninteractive
MYSQL_ROOT_PASS='mySecretPass'
MYSQL_APP_PASS='appSecretPass'
mysql --user='root' --password='${MYSQL_ROOT_PASS}' <<QUERY
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASS}';
CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
GRANT ALL PRIVILEGES ON apdb.* to 'appuser'@'%' IDENTIFIED BY '${MYSQL_APP_PASS}';
QUERY
EOF
但是,当我执行上面我得到的错误:
ERROR 1133 (42000) at line 1: Can't find any matching row in the user table
我不完全得到怎样逃逸现在bash和MySQL的内部工作原理。我一直在瞎搞与eval
,而不是这里的文件和一些混合起来之间逃逸“和”报价
否SQL文件不知道有关bash变量,然后 –