bash检查mysql连接

bash检查mysql连接,mysql,linux,bash,Mysql,Linux,Bash,我正在编写一个bash脚本来对debian服务器上的数据库执行一些操作 我注意到,如果我为root输入了错误的密码,提示将关闭,并且不会要求我重试。。。那不太方便 因此,我试图创建一个循环,尝试连接到MYSQL,并保存密码,以备以后成功时使用 我试过了,但没用。 相反,我收到了以下错误: 错误1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是) 我在bash脚本方面不是很有经验,任何帮助都会很棒 我认为您不需要[[-n backtic…]测试这样嵌套。尝试:

我正在编写一个bash脚本来对debian服务器上的数据库执行一些操作

我注意到,如果我为root输入了错误的密码,提示将关闭,并且不会要求我重试。。。那不太方便

因此,我试图创建一个循环,尝试连接到MYSQL,并保存密码,以备以后成功时使用

我试过了,但没用。 相反,我收到了以下错误:

错误1045(28000):拒绝用户“root”@“localhost”的访问(使用密码:是)


我在bash脚本方面不是很有经验,任何帮助都会很棒

我认为您不需要
[[-n backtic…]测试这样嵌套。尝试:

read -s -p "Enter MYSQL root password: " mysqlRootPassword

while ! mysql -u root -p$mysqlRootPassword  -e ";" ; do
       read -s -p "Can't connect, please retry: " mysqlRootPassword
done
while
评估任何命令组直到关闭
;执行
并检查最后执行的命令的返回代码,以确定是否应执行循环。因为您正在查找失败,所以必须在测试之前使用逻辑NOT(
)或使用语法等效项,即

until mysql -u root -p$mysqlRootPassword  -e ";" ; do
       read -s -p "Can't connect, please retry: " mysqlRootPassword
done
您可以将其视为“在mysql正常工作之前,请继续尝试获取正确的密码”

不幸的是,我没有访问mysql安装的权限,因此这是未经测试的


我希望这会有所帮助。

您在serverfault.com上可能会有更好的运气,尽管这被认为是一个编程问题。.不知道它引用了什么(在web上找到),但它工作得很好!我承认这令人困惑,我将编辑我的问题,并用“mysql”替换它。谢谢谢谢,伙计,就这样!但是,这将连接到mysql并显示其提示。为了避免这种情况,这里有一个while语句:while!mysql-uroot-p$mysqlRootPassword-e“;do@Erwan,很高兴这有帮助。我已经编辑了我的答案,把你的进步包括在内。我做对了吗?谢谢,祝你好运。效果很好。我在while中的read-in中添加了-s选项,以避免重复输入密码。
until mysql -u root -p$mysqlRootPassword  -e ";" ; do
       read -s -p "Can't connect, please retry: " mysqlRootPassword
done