【问题标题】:how to execute mysql command using script shell如何使用脚本shell执行mysql命令
【发布时间】:2015-02-15 17:40:53
【问题描述】:

我想在 centos 中使用 shell 脚本执行 mysql 命令,我正在编写命令,任何人都可以告诉我如何编写此脚本,并且我在文件中获取输出,所以每次执行脚本时它都会创建新文件。

SELECT TABLENAME, tablerow, round(data_length/1024/1024 ,2 ) as dl , round(index_length/1024/1024 ,2 ) as il , round(data_length/1024/1024 ,2 ) as dl , round((data_length + index_length)/1024/1024 ,2)  "size in mb" from Information schema , TABLES WHERE TABLE_SCHEMA=" Db_name" order by data_length desc limit 10 in to out file ' ' FIELDS TERMINATED BY ' | ' ENCLOSED BY "  " TERMINATED BY '\R\N '

【问题讨论】:

  • 不,它不重复,我也想运行命令以在每次执行时更改输出文件
  • 那里的答案之一告诉您如何将输出写入文件。
  • 如果你想要一个不同的文件名,你需要某种计数器或时间戳。

标签: mysql linux shell


【解决方案1】:

试试这个方法:

mysql -u username -pPassword <database> -e "SELECT TABLENAME, tablerow, round(data_length/1024/1024 ,2 ) as dl , round(index_length/1024/1024 ,2 ) as il , round(data_length/1024/1024 ,2 ) as dl , round((data_length + index_length)/1024/1024 ,2)  "size in mb" from Information schema , TABLES WHERE TABLE_SCHEMA=" Db_name" order by data_length desc limit 10 in to out file ' ' FIELDS TERMINATED BY ' | ' ENCLOSED BY "  " TERMINATED BY '\R\N ';"

【讨论】:

    【解决方案2】:
    mysql -u root -p <Hit enter>
    root             <Here root is password>
    
    show databases;
    

    先查看数据库,然后选择。

    use database YourDatabase
    

    然后输入您的命令,例如:

    >SELECT TABLENAME, tablerow, round(data_length/1024/1024 ,2 ) as dl , round(index_length/1024/1024 ,2 ) as il , round(data_length/1024/1024 ,2 ) as dl , round((data_length + index_length)/1024/1024 ,2)  "size in mb" from Information schema , TABLES WHERE TABLE_SCHEMA=" Db_name" order by data_length desc limit 10 in to out file ' ' FIELDS TERMINATED BY ' | ' ENCLOSED BY "  " TERMINATED BY '\R\N '
    

    【讨论】:

      最近更新 更多