我可以保护服务器上的mySQL数据库免受一个数据库的问题

时间:2011-07-13 22:22:22

标签: mysql

我有一台带有多个MySQL数据库的服务器 我有一个数据库的问题,可能是因为编程错误或数据错误。也许这是一个失控的查询。问题发生......但是,一个数据库的问题可能会减慢或锁定服务器上的所有数据库,从而使较小的问题成为一个巨大的问题。

我可以做些什么来在一个数据库中包含效果,让其他数据库顺利运行。

2 个答案:

答案 0 :(得分:2)

一个明显的解决方案是运行多个MySQL实例。虽然您可以采取较少的措施,具体取决于您要避免的特定错误条件的确切性质。

您可以查看Setting Account Resource Limits。设置每个用户的最大连接数可能会有很长的路要走,以帮助解决您所面临的一些问题。

当然,其他数据库系统可以针对这些类型的事物提供额外的安全性,但这并不意味着无法根据您的需求配置MySQL。例如,PostgreSQL提供了一个“语句超时”变量,我们在工作中使用它来设置查询运行时的全局上限,就像防止长时间运行的查询一样。 (如果我们希望特定查询花费的时间超过默认值300秒,则可以在每个连接的基础上轻松覆盖它。我没有为MySQL找到类似的选项。

答案 1 :(得分:0)

要完全包含失控/递归查询的问题,您需要将该数据库移动到它自己的服务器上。该查询可能会耗尽其他数据库所需的所有已分配内存/磁盘空间。