【问题标题】:How to access mysql database using shell script?如何使用shell脚本访问mysql数据库?
【发布时间】:2011-04-27 18:55:28
【问题描述】:

有没有办法可以使用 shell 脚本访问 MySQL 数据库? 想要在多个表上做一些选择和一些插入?

如果您能提供一些示例代码,那就太好了,因为我是脚本新手。

【问题讨论】:

    标签: mysql database shell


    【解决方案1】:

    此链接似乎包含您想要的信息。

    http://www.cyberciti.biz/faq/using-mysql-in-shell-scripts/

    mysql -u user -p dbnane
    

    【讨论】:

      【解决方案2】:

      试试这个

      #!/bin/bash
      echo "show all tables"
      mysql -uroot -p'password' dbname<<EOFMYSQL
      show tables;
      EOFMYSQL
      echo "Count of all records"
      mysql -uroot -p'password' dbname<<EOFMYSQL
      select count(*) from tbname;
      EOFMYSQL
      

      【讨论】:

      • @ishimwe 为什么要添加 有没有其他方法可以做到这一点。
      • 很好用的答案
      【解决方案3】:

      您可以在 shell 脚本中使用 mysql command-line tool

      【讨论】:

        【解决方案4】:

        例如,选择database dbnametable tablename中的所有name字段,并将所有名称重定向到/tmp/all_name.txt。

        #!/bin/sh
        
        mysql -uuser_name -puser_pwd -h10.10.10.10 -A --default-character-set=utf8 \
             -e "select name from dbname.tablename;"  > /tmp/all_name.txt
        

        注意,-uuser_name 不是 -u user_name-puser_pwd not -p user_pwd

        【讨论】:

          【解决方案5】:

          实际上,我是使用 Perl 实现的。我编写了一个能够访问 MySQL 数据库的 Perl 脚本。

          我所要做的就是将它包含在我的 Perl 脚本中:

          # PERL MODULES USING
          use DBI;
          use DBD::mysql;
          

          但只需确保正确安装了这些模块。我不知道该怎么做,因为我的系统管理员为我做了。

          你可以像这样访问数据库:

          # MYSQL CONFIG VARIABLES
          $platform = "mysql";
          $host = "<your db server ip>";
          $database = "<db name>";
          $org_table = "<table name>";
          $user = "<username>";
          $pw = "<password>";
          
          # DATA SOURCE NAME
          $dsn = "dbi:$platform:$database:$host:$port";
          
          # PERL DBI CONNECT
          $connect = DBI->connect($dsn, $user, $pw);
          

          现在假设你创建了一个查询字符串,然后你想执行它:

          #SELECT THE ORG SHORT NAMES
          $select_org = "SELECT id, short_name FROM $org_table";
          $org_handle = $connect->prepare($select_org);
          
          $org_handle will have the resultset.
          

          【讨论】:

            猜你喜欢
            • 2017-06-14
            • 1970-01-01
            • 1970-01-01
            • 2011-04-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-02-03
            • 1970-01-01
            相关资源
            最近更新 更多