使用shell脚本更改mysql root用户密码

时间:2017-02-14 10:27:21

标签: mysql shell automation sh

我正在尝试使用shell脚本更改用户密码,如下所示

#!/bin/bash
mysql.server start
mysql -u root << EOF
  SET PASSWORD FOR root@'localhost' = PASSWORD(‘admin’);
EOF

但我收到以下错误: -

  

第1行的错误1064(42000):您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在“&admin”附近使用正确的语法。&#39;在第1行

而不是SET PASSSWORD命令,如果使用其他东西将起作用,就像我使用&#39;创建数据库databasename&#39;会有效。

  

UPDATE1:

如果我使用&#34; admin&#34;或者&#39; admin&#39;而不是'admin',我得到了以下错误。

  

第1行的错误1064(42000):您的SQL语法出错;检查与您的MySQL服务器版本对应的手册,以便在“&#39;”“admin2”附近使用正确的语法。&#39;在第1行

  

UPDATE2:

使用-e标志时出现以下错误

  

./ mysql.sh:line 3:意外令牌附近的语法错误(' ./mysql.sh: line 3: mysql -u root -padmin -e“root密码设置密码@&#39; localhost&#39; = PASSWORD('admin2');“&#39;

2 个答案:

答案 0 :(得分:3)

使用mysql -e代替:

#!/bin/bash
mysql.server start
mysql -u root -e "SET PASSWORD FOR root@'localhost' = PASSWORD(‘admin’);"

答案 1 :(得分:0)

适用于任何尝试以上但无法正常工作的人。我在终端中运行了以下内容,它起作用了! (记住设置您想要的密码;))

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