我们正在运行一些共享的主机Linux服务器和一个私人的服务器。 我们正在其下运行cPanel / WHM许可证。
我面临的困境是:
我如何自动运行下面的命令?
mysqlcheck -u root -p –auto-repair –check –optimize –all-databases
问题是,我被提示inputroot密码,但我想自动运行此命令,密码提示中断此过程。
请帮帮我。
将根证书存储在只有root用户可以访问的文件中。 然后只需传递凭证文件名。
mysqlcheck --defaults-file=/etc/mysql/root.cnf --auto-repair --check --optimize --all-databases
/etc/mysql/root.cnf
[client] host = servername.domain.tld user = backup password = strongpassword
只要/etc/mysql/root.cnf只能被root用户读取,这并不会造成巨大的安全漏洞,因为root用户可以轻松地重置mysql密码,而不需要任何mysql凭证。
您可以将所需的密码放在〜/ .my.cnf的[client]部分,或者使用--defaults-extra-file=path/to/yourconfig.cnf指定一个额外的configuration文件
有关更多详细信息,请参阅MySQL文档的选项 – 文件段。
你可以在命令行上提供密码。 当然这有一些隐私/安全问题。
mysqlcheck -uroot -pPASSWORD --auto-repair --check --optimize --all-databases