1

我正在编写一个脚本,该脚本对 MySQL 数据库进行一系列错误检查。

首先,它使用 root 凭据检查数据库是否存在:

until [[ ! -z "`mysql -h $dbHost -u $dbRoot -p$mysqlRootPwd -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$dbName'" 2>&1`" ]];

然后,它使用相同的检查来确保指定的用户实际上具有使用数据库的权限

until [[ ! -z "`mysql -h $dbHost -u $dbUser -p$dbPass -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$dbName'" 2>&1`" ]];

第二个通过误报,但不是在单独运行时。这让我相信它出于某种原因仍在检查根凭据。

有任何想法吗?

4

1 回答 1

0

我最终通过使用 mysqlshow 命令解决了这个问题。

dbTestUser=mysqlshow --host=$dbHost --user=$dbUser --password=$dbPass $dbName| grep -v Wildcard | grep -o $dbName

dbTestRoot=mysqlshow --host=$dbHost --user=$dbRoot --password=$mysqlRootPwd $dbName| grep -v Wildcard | grep -o $dbName

然后if [ -z $dbTestUser ]验证测试是否正常工作。

于 2013-08-05T03:59:11.567 回答