当前位置: 首页 > 面试题库 >

如何从Shell脚本执行MySQL命令?

白君之
2023-03-14
问题内容

如何通过外壳程序脚本执行SQL命令,以使其自动化?

我想使用外壳程序脚本恢复在SQL文件中收集的数据。我想连接到服务器并还原数据。通过SSH命令行单独执行时,该命令有效。

这是我使用的命令:

mysql -h "server-name" -u root "password" "database-name" < "filename.sql"

这是创建文件ds_fbids.sql并将其通过管道传递到mysql 的Shell脚本代码

perl fb_apps_frm_fb.pl
perl fb_new_spider.pl ds_fbids.txt ds_fbids.sql
mysql -h dbservername -u username -ppassword dbname < ds_fbids.sql

正确的方法是什么?


问题答案:

您需要使用该-p标志来发送密码。这很棘手,因为您-p和密码之间必须没有空格。

$ mysql -h "server-name" -u "root" "-pXXXXXXXX" "database-name" < "filename.sql"

如果在空格之后-p使mysql客户端以交互方式提示您输入密码,然后将下一个命令参数解释为数据库名称,则使用空格:

$ mysql -h "server-name" -u "root" -p "XXXXXXXX" "database-name" < "filename.sql"
Enter password: <you type it in here>
ERROR 1049 (42000): Unknown database 'XXXXXXXX'

实际上,我更喜欢将用户名和密码存储在〜/ .my.cnf中,因此我根本不必将其放在命令行中:

[client]
user = root
password = XXXXXXXX

然后:

$ mysql -h "server-name" "database-name" < "filename.sql"

发表您的评论:

我一直在命令行和shell脚本中始终运行上述类似的批处理模式mysql命令。很难诊断Shell脚本出了什么问题,因为您尚未共享确切的脚本或任何错误输出。我建议您在上面编辑您的原始问题,并提供发生问题的示例。

另外,在对shell脚本进行故障排除时,我使用该-x标志,以便查看其如何执行每个命令:

$ bash -x myscript.sh


 类似资料:
  • 问题内容: 我需要从Django Shell执行Python脚本。我试过了: 但这没有用。只是在等我写东西。 问题答案: 该<<部分有误,请<改用: 你也可以这样做: 对于python3,你需要使用

  • 我需要从Django shell执行一个Python脚本。我试过: 但是没有成功。它只是在等我写些什么。

  • 问题内容: 我想从PHP脚本执行系统上存在的Bash脚本。我的系统上有两个脚本。其中一个是称为at at 的PHP脚本,另一个是称为at at 的Bash脚本。 我的client.php脚本看起来像 我的睾丸看起来像 当我在终端上执行以下操作时 我在终端上得到以下输出 但是当我在打开页面时 我得到以下输出 即使执行了chmod + x testscript,我仍然收到此错误。 我如何从浏览器中获取

  • 问题内容: 我尝试谷歌搜索答案,但没有运气。 我需要使用我的超级计算机服务器,但是要运行我的python脚本,必须通过shell脚本执行。 例如我要执行 如何做到这一点? 问题答案: 只需确保python可执行文件在PATH环境变量中,然后在脚本中添加 细节: 在文件job.sh中,放入 执行此命令以使脚本可运行: 运行 :

  • 本文向大家介绍Android 从Gradle执行Shell脚本,包括了Android 从Gradle执行Shell脚本的使用技巧和注意事项,需要的朋友参考一下 示例 Shell脚本是一种非常通用的方法,可以将您的构建扩展到您能想到的任何东西。 例如,这是一个简单的脚本,用于编译protobuf文件并将结果java文件添加到源目录中以进行进一步编译: 此示例的“ pbScript.sh” shell

  • 问题内容: 如何在Linux中从C执行Shell脚本? 问题答案: 这取决于您要对脚本(或要运行的任何其他程序)执行的操作。 如果只想运行脚本,这是最容易的事情,但是它也做其他一些事情,包括运行shell并让其运行命令(在大多数* nix下是/ bin / sh)。 如果您要通过标准输入来输入shell脚本或使用其标准输出,则可以使用(和)设置管道。这也使用外壳程序(大多数* nix下是/ bin