我正在尝试创建一个 bash 脚本来更改 MySQL 根密码,以下是我正在使用的当前代码片段:
#!/bin/sh
clear
echo "Enter the current password for the root mysql account."
read oldrootpass
echo "Enter a new password for the root mysql account."
read newrootpass
mysql -u root -p$oldrootpass -Bse 'UPDATE user SET password=PASSWORD("$newrootpass") WHERE User="root"'
Run Code Online (Sandbox Code Playgroud)
上面更改 root 密码的语法可能不正确,但我坚持的部分是生成一个单行命令来使用 mysql,如果该命令超过 2 行,则输入 MySQL 提示符,并在一旦使用'exit'命令关闭MySQL提示符,就会执行bash脚本。
我的目的是通过 bash 脚本收集相关密码信息,运行单个命令更改 root 密码,然后返回到 bash 脚本,或者 bash 提示脚本已结束。
使用 mysqladmin 而不是在 mysql 中运行查询。
mysqladmin -u root -p'$oldrootpass' password '$newrootpass'
应该可以工作,但您可能需要稍微弄乱引号。
如果您要问如何使用单个mysql
命令运行多个语句,您可以简单地用分号分隔它们:
$ mysql -e 'select 1; select 2'
+---+
| 1 |
+---+
| 1 |
+---+
+---+
| 2 |
+---+
| 2 |
+---+
Run Code Online (Sandbox Code Playgroud)
或者您可以创建一个包含 SQL 语句的文件并运行:
$ mysql < change_password.sql
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7353 次 |
最近记录: |