-1 password cron shell-script mysql
我想创建一个cron脚本来与mysql交互,例如
#!/bin/bash
mysql -uroot -p
echo root
echo "CREATE DATABASE example"
Run Code Online (Sandbox Code Playgroud)
但它不起作用,它只提示:
Enter password:
Run Code Online (Sandbox Code Playgroud)
当我退出 mysql 它显示
root
"CREATE DATABASE example"
Run Code Online (Sandbox Code Playgroud)
任何的想法?
放一些类似的东西:
[client]
user=root
password="my-very-secret-password"
Run Code Online (Sandbox Code Playgroud)
在一个文件中,其权限确保有权阅读它的人之外的任何人都无法阅读它。
并运行:
#! /bin/sh -
mysql --defaults-extra-file=/path/to/that/file --batch << "EOF"
CREATE DATABASE example
EOF
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅MySQL 自己的指南。
您可以将密码放在脚本中并限制对脚本本身的读取访问,但您还需要确保密码不会作为参数传递给任何命令,因为这会使其对输出中的任何人可见ps
.
你可以这样做:
#! /bin/sh -
mysql --defaults-extra-file=/dev/fd/3 --batch 3<< "END_OF_AUTH" << "END_OF_SQL"
[client]
user=root
password="my-very-secret-password"
END_OF_AUTH
CREATE DATABASE example
END_OF_SQL
Run Code Online (Sandbox Code Playgroud)