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

标签 linux database bash shell sh

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

代码: #!/bin/庆典 # 使用 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" 

最佳答案

如果您不介意对密码进行硬编码,则只需在命令行中将其作为参数提供即可。

例如:

mysql -u root -pMYPASSWORD ...

关于linux - 如何在此脚本中硬编码密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44996176/

相关文章:

imx : Can't log sent CAN frames using candump 上的 Linux 2.6

c - 对 ncurses 库中函数的 undefined reference

php - 在 PHP 中存储一些数据的无数据库方法

php - 在多个 Apache 服务器上使用 session 数据库

linux - 脚本不执行,而是挂起

linux - clang 静态分析器的一些检查器在 linux 下不工作

linux - 保护 htdocs 目录

C# 数据库 ConnectionString 属性尚未初始化

linux - 等待并行远程进程完成 bash ssh

linux - 有没有办法使 linux CLI IO 重定向持久化?