【问题标题】:Looking an example to create a db by cron寻找通过 cron 创建数据库的示例
【发布时间】:2019-08-19 21:08:10
【问题描述】:

我会知道你是否有一个示例来创建一个允许删除一个数据库并每小时创建一个新数据库的 cron。

你有例子吗?

delete database test.sql => 删除数据库内的所有数据库表

mysql test < fichier.sql => 导入所有 db 表。

# at every hour
0 0 0 0 *        mysql -e delete database; test.sql mysql test < fichier.sql

drop table * => 删除数据库中的所有表

/usr/bin/mysql -e 'drop table * if exists c1_demo_client; create database test' && /usr/bin/mysql test < /var/www/home/web/www/test/db_demo_client/test_db.sql 

正确吗? 谢谢

【问题讨论】:

  • ;&amp;&amp; 分隔您的命令,或者编写一个包含多行的脚本来完成这项工作。
  • @tadman 已更改,是否正确? cron时间是否正确?
  • 要记住的一件事是在cron 环境中,您可能没有完整的PATH,因此通常最好指定每个事物的显式路径,包括输入和输出文件. /usr/bin/mysql/usr/local/bin/mysql 或其他任何地方,加上 &lt; /home/.../fichier.sql 等等。
  • 好的,见上文,tk
  • 顺便说一句,你不能只写你想要的 SQL 语法。根据您的 MySQL 版本的手册对其进行验证。所以没有drop table *

标签: mysql linux cron


【解决方案1】:

Deleting a database 是 'drop database {databasename}',在您的 crontab 中看到 test.sql 很奇怪。

建议:

0 0 0 0 *        mysql -e 'drop database if exists test; create database test' && mysql test < fichier.sql

【讨论】:

  • 我不想删除数据库,而是要删除里面的所有内容。我改变了上面的元素。告诉我它是否正确。传统知识
  • 最简单的方法是删除并重新创建它,如this answer所示。
  • 好的,我明白了,但是在数据库内部,用户是正确的。如果我放弃了 dn,我就失去了权利。那是我的问题。
  • 可以理解,但是由于在数据库上下文中添加了功能,备用删除 SQL 看起来会过度,并且未来缺乏可移植性。重新创建用户和数据库将更快/面向未来。解释为什么会发生每小时删除可能会发现更广泛的替代方案。
  • @mike 作为此过程的一部分,您可以轻松地重新颁发GRANT 权限。
猜你喜欢
  • 1970-01-01
  • 2019-03-07
  • 2021-03-16
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 2016-09-06
  • 2015-07-04
  • 1970-01-01
相关资源
最近更新 更多