mysql - 如何在 bash 上运行 MySQL 命令?

以下代码在命令行上运行

mysql --user='myusername' --password='mypassword' --database='mydatabase' --execute='DROP DATABASE myusername; 
CREATE DATABASE mydatabase;'

但是,它在执行时对 bash 文件不起作用

#!/bin/bash
user=myusername
password=mypassword
database=mydatabase

mysql --user='$user' --password='$password' --database='$database' --execute='DROP DATABASE $user; CREATE DATABASE $database;'

我收到以下错误:

ERROR 1045 (28000): Access denied for user '$user'@'localhost' (using password: YES)

如何让bash文件作为命令行运行?

最佳答案

在使用 BASH 变量时使用双引号。

mysql --user="$user" --password="$password" --database="$database" --execute="DROP DATABASE $user; CREATE DATABASE $database;"

BASH 不会用单引号扩展变量。

https://stackoverflow.com/questions/20033648/

相关文章:

mysql - 如何在 Sequel Pro 中执行查询?

mysql - SQL 性能 UNION 与 OR

sql - 单数还是复数数据库表名?

mysql - 如何解决 "Error: MySQL shutdown unexpectedly"?

mysql - MySQL 是否索引 NULL 值?

MySQL - 条件外键约束

mysql - 总锁数超过锁表大小

python - MySQL:从查询中获取列名或别名

mysql - MySQL中是否可以有基于函数的索引?

mysql - 遇到需要满足多个条件的 MySQL Join 问题