mysql - 在 bash 脚本中通过 ssh 创建 mySQL 数据库

标签 mysql bash shell unix ssh

我想使用 bash 脚本通过 ssh 在远程服务器上创建一个数据库。像这样

#!/bin/sh
ssh user@example.com 'mysql -h example.com -uroot -pMYPASSWD -e "CREATE DATABASE $1;"'

这样我就可以在终端中运行它了

$ myBashScript nameOfNewDatabase

最佳答案

下面的脚本可以远程执行任意命令

#!/bin/bash
# call mysql on a remote server to execute the given command 

# show usage and exit
usage() {
  echo "$0 server sql-command"  1>&2
    exit 1
}

# check number of arguments
if [ $# -lt 2 ]
then
  usage
fi

# get server name and sql command
server="$1"
sql="$2"

# copy command to a temporary file
tmpsql="/tmp/sql$$"
echo "$sql" > $tmpsql

# copy command file to server
scp $tmpsql $server:$tmpsql
# run command remotely with removing command file afterwards
ssh $server "mysql -uroot -pPASSWORD < $tmpsql;rm $tmpsql"
# remove local copy of command file
rm $tmpsql

关于mysql - 在 bash 脚本中通过 ssh 创建 mySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12905077/

相关文章:

bash - 在管道命令中从文件内容切换到 STDIN? (Linux shell )

php - 如何在php中获取特定的 session 路径?

php - Mysql根据某种条件选择某个字段

regex - 在 Linux 中循环访问名称中带有日期模式的文件

bash - cURL 获得的页面源与 Chrome 浏览器不同

shell - 做一个 tail -F 直到匹配一个模式

mysql - 使用多个内部连接和顺序子句时 sql 查询速度极慢

PHP创建表错误1064

bash - 在 Bash 中,我如何安全地确定软链接(soft link)指向什么?

shell - 在 csh 中转义 $