MySQL通过命令行变量设置密码

时间:2017-01-19 19:10:37

标签: mysql bash

我需要一个单行程序来配置我的数据库中的用户。我正在运行MySQL 5.6。这是我将密码设置为变量,以便我可以动态传递它(显然它不会总是'密码')。

mysql_password="password"
mysql -u ted -e "SET PASSWORD FOR 'ted'@'localhost' = PASSWORD($mysql_password);"

运行时出现以下错误:

ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password)' at line 1

声明有什么问题?可以纠正还是另一种解决方案可用,所以我通过Bash实现这一点?

1 个答案:

答案 0 :(得分:2)

您需要用单引号括起变量:

mysql -u root -e "SET PASSWORD FOR 'ted'@'localhost' = PASSWORD('$mysql_password');"