我正在尝试创建一个 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
您已经完成了!