【问题标题】:How to delete mysql database through shell command如何通过shell命令删除mysql数据库
【发布时间】:2011-01-04 06:26:11
【问题描述】:

我使用 pylons 和 sqlalchemy。我不断更新架构文件并删除并重新创建数据库,以便可以制作新架构。

每次我通过打开 MySql 查询浏览器并登录并删除数据库/模式来执行此操作。

如何在 Ubuntu Linux 中彻底删除 MySQL db/schema 的 linux shell 命令?

【问题讨论】:

  • 这适用于任何操作系统,而不仅仅是 linux

标签: mysql database linux shell ubuntu


【解决方案1】:

试试下面的命令:

mysqladmin -h[hostname/localhost] -u[username] -p[password] drop [database]

【讨论】:

  • 系统上的任何其他用户都可以访问您的密码。 ps aux。考虑改用.my.cnf
  • 我是 shell 脚本的新手,但是对于那些发现这个寻找从脚本中删除和创建数据库的方法的人来说,这个方法对我有用。
  • 如果你想在不登录的情况下亲自查看,如果你的数据库确实被炸毁了,我喜欢mysqlshow -u [username] -p[Password]。您甚至可以使用 grep 搜索数据库 mysqlshow -u [username] -p[password] | grep [database]
  • -u 和用户名之间肯定没有空格?
  • 有什么方法可以用一个命令删除所有数据库,而不是为每个数据库写下命令?
【解决方案2】:

通常,您可以使用 -e 选项将任何查询从 shell 传递给 mysql

mysql -u username -p -D dbname -e "DROP DATABASE dbname"

【讨论】:

  • 系统上的任何其他用户都可以访问您的密码。 ps aux。考虑改用.my.cnf
  • 或者只是说明这仅适用于您是唯一用户的本地开发环境。
  • 删除数据库不需要 -D 标志。应该足够了:mysql -uuser -ppass -e "DROP DATABASE dbname"
【解决方案3】:

您可以直接删除数据库:

$ mysqladmin -h [host] -u [user] -p drop [database_name]

[输入密码]

您是否真的要删除“无毛”数据库 [y/N]:y

【讨论】:

    【解决方案4】:

    MySQL 已停止从 mysql 客户端 shell 中删除数据库命令。需要使用 mysqladmin 来删除数据库。

    【讨论】:

    • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
    • 因为问题太模糊,所以不直接回答。
    【解决方案5】:
    [root@host]# mysqladmin -u root -p drop [DB]
    
    Enter password:******
    

    【讨论】:

    • 我认为这不会像其他许多答案那样将密码暴露给服务器上的其他用户;而是在用户点击回车后询问用户。当人们否决可能是最好的两个答案时,他们可能没有意识到这一点!
    【解决方案6】:

    不需要mysqladmin:

    只用mysql命令行

    mysql -u [username] -p[password] -e 'drop database db-name;'
    

    这将发送 drop 命令,尽管我不会以这种方式传递密码,因为它会通过 ps aux

    暴露给系统的其他用户

    【讨论】:

      【解决方案7】:

      如果您厌倦了输入密码,请创建一个 (chmod 600) 文件~/.my.cnf,然后放入:

      [client]
      user = "you"
      password = "your-password"
      

      为了交流:

      echo 'DROP DATABASE foo;' | mysql
      

      【讨论】:

      • 虽然是开发环境,但我真的不太担心密码被别人看到。我非常喜欢你的 .my.cnf 想法。 +1 的想法
      • 对于自动脚本,答案的第二部分是最好的。太好了,谢谢。
      【解决方案8】:

      另一种合适的方式:

      $ mysql -u you -p
      <enter password>
      
      >>> DROP DATABASE foo;
      

      【讨论】:

      • 这和他一直做的基本一样。
      • 说明命令行上的可能性并不保证否决票。他正在使用 MySql 查询浏览器。不太一样。
      • 但是问题陈述清楚地表明他想要一个“shell命令”。
      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 2012-02-10
      • 2012-05-30
      • 2011-06-24
      • 2018-04-12
      • 2019-03-18
      • 1970-01-01
      相关资源
      最近更新 更多