我对shell脚本非常陌生,我找到了这段代码,它将在mysql中创建或恢复数据库转储。但当我执行它时,它会询问mysql的密码。我想硬编码这个密码,这样我就不必每次执行它时都输入它。
代码:#!/bin/bash #使用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" 发布于 2017-07-09 20:06:15
如果您可以对密码进行硬编码,则只需在命令行中将其作为参数提供即可。
例如:
mysql -u root -pMYPASSWORD ...
https://stackoverflow.com/questions/44996176
复制相似问题