开发者社区> 问答> 正文

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

如何通过外壳程序脚本执行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 正确的方法是什么?

展开
收起
保持可爱mmm 2020-05-17 17:01:32 613 0
1 条回答
写回答
取消 提交回答
  • 您需要使用该-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: 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来源:stack overflow

    2020-05-17 17:08:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像