如何在此脚本中硬编码密码

时间:2017-07-09 12:00:27

标签: linux database bash shell sh

我是shell脚本的新手,我发现这段代码将在mysql中创建或恢复数据库转储。但是当我执行它时,它会要求输入mysql的密码。我想硬编码这个密码所以我不必每次执行它都输入它。

代码:     #!/斌/庆典     #使用root登录还原大型SQL转储的shell脚本。     #用法:./ restore_dump.sh dump.sql app_devdb

(( $# != 2 )) && { echo "Usage: $0 dump.sql database_name"; exit 1; }
[ ! -f $1 ] && { echo "$1 not found1"; exit 1; }

RESULT=`mysql -u root -p --skip-column-names -e "SHOW DATABASES LIKE '$2'"`
if [ "$RESULT" != $2 ]; then
    echo "Database '$2' does not exist; creating it...";
    mysql -u root -p -e "CREATE DATABASE IF NOT EXISTS $2;"
    [ $? -ne 0 ] && { echo "Unknown error in attempting to create database '$2'"; exit 1; }
fi

(
  echo "SET AUTOCOMMIT=0;"
  echo "SET UNIQUE_CHECKS=0;"
  echo "SET FOREIGN_KEY_CHECKS=0;"
  cat $1
  echo "SET FOREIGN_KEY_CHECKS=1;"
  echo "SET UNIQUE_CHECKS=1;"
  echo "SET AUTOCOMMIT=1;"
  echo "COMMIT;"
) | mysql -o -u root -p "$2" 

1 个答案:

答案 0 :(得分:0)

如果你对密码进行硬编码很好,你只需在命令行上将其作为参数提供。

例如:

mysql -u root -pMYPASSWORD ...