shell脚本 – 创build一个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连接并等待input,就是这样。

任何人都知道如何实现这个目标?

 Server: Centos 6.2 MySQL client version: 5.1.61 

谢谢,Alex

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

其次,就我从文档中可以看到的情况而言,只需在第一部分之后添加-e开关即可。

所以最终结果如下所示:

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

Id使用mysqladmin命令进行这种types的任务:

 mysqladmin -u root -pPASSWORD create foo 

你应该使用-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 

相信与否,你可以创build一个数据库而不login到MySQL。

例如,要创build一个名为foo的数据库,请尝试以下操作:

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

你完成了!