shell 脚本-创建 mysql 数据库

shell 脚本-创建 mysql 数据库

我正在尝试创建一个 shell 脚本来执行以下操作:

  • 连接到正在运行 MYSQL 的远程服务器
  • 成功后运行“CREATE DATABASE foo;”

到目前为止我尝试过:

#!/bin/bash
mysql -h 111.11.11.11 -u root -p'XXXXXXX'
mysql> CREATE DATABASE foo;

或者

echo "CREATE DATABASE foo;";

但没有成功。

我正在使用命令行来运行 shell 脚本。

# sh create_mysql_database.sh

但它所做的只是强制 mysql 连接并等待输入,仅此而已。

有人知道如何真正实现这一点吗?

Server:
Centos 6.2
MySQL client version: 5.1.61

谢谢,亚历克斯

答案1

首先,-p和实际密码之间不应该有空格。

其次,据我从文档中看到的,您可以在第一部分之后立即添加命令,并打开 -e 开关。

最终结果如下:

#!/bin/bash
mysql -h 111.11.11.11 -uroot -pPASSWORD -e "CREATE DATABASE foo;"

答案2

我将使用以下mysqladmin命令来执行此类任务:

mysqladmin -u root -pPASSWORD create foo

答案3

您应该使用 -e 选项,如下所示:

#!/bin/bash
mysql -h 111.11.11.11 -uroot -pPASSWORD -e "CREATE DATABASE foo;"

或者 :

#!/bin/bash
SQL="CREATE DATABASE foo;"
mysql -h 111.11.11.11 -uroot -pPASSWORD <<<$SQL

答案4

无论你是否相信,你无需登录mysql就可以创建数据库。

例如,要创建一个名为的数据库foo,请尝试以下步骤:

cd /var/lib/mysql
mkdir foo
chown mysql:mysql foo

您已经完成了!

相关内容