【问题标题】:Change mysql root user password using shell script使用shell脚本更改mysql root用户密码
【发布时间】:2017-07-02 14:17:39
【问题描述】:

我正在尝试使用下面的 shell 脚本更改用户密码

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

但我遇到以下错误:-

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

如果使用其他东西而不是 SET PASSSWORD 命令,如果我使用“创建数据库数据库名称”将起作用。

.

更新1:

如果我使用“admin”或“admin”而不是“admin”,则会出现以下错误。

ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“admin2”) 附近使用正确的语法

.

更新2:

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

./mysql.sh:第 3 行:意外标记附近的语法错误(' ./mysql.sh: line 3:mysql -u root -padmin -e “SET PASSWORD FOR root@'localhost' = PASSWORD('admin2');”'

【问题讨论】:

  • ‘admin’ 你能用这些引号括起来吗?改用"admin"'admin'
  • 感谢您的回复,我认为问题是由于编辑 :)

标签: mysql shell automation sh


【解决方案1】:

使用 mysql -e 代替:

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

【讨论】:

  • 我认为问题是由于某个编辑器造成的,我使用另一个编辑器编写了相同的脚本,你和我的脚本都可以工作。感谢您的回复。
【解决方案2】:

对于任何尝试以上但无法正常工作的人。我在终端中运行了以下命令,它成功了! (记得设置你想要的密码;))

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

【讨论】:

    猜你喜欢
    • 2017-07-11
    • 1970-01-01
    • 2012-07-23
    • 2012-06-29
    • 2020-08-01
    • 2015-08-28
    • 2019-11-24
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多