【问题标题】:Start a "throwaway" MySQL session for testing code?启动一个“一次性”MySQL 会话来测试代码?
【发布时间】:2009-12-25 00:25:16
【问题描述】:

如果我希望能够在每次运行我的应用程序的测试套件时针对空的 MySQL 数据库测试我的应用程序,我如何以非 root 用户身份启动服务器,该用户指的是空的(未保存在任何地方,或已保存到/tmp) MySQL 数据库?

我的应用程序使用 Python,我在 Ubuntu 9.10 上使用 unittest

【问题讨论】:

  • 有什么理由不让 DROP DATABASE foo; CREATE DATABASE foo; 运行在正在运行的 MySQL 服务器上进行测试?
  • 我正在寻找一种方法(阅读:命令运行)在安装了 MySQL 但不一定正在运行的系统上启动服务器。我的用户也可能无权“正常”启动服务器。

标签: python mysql unit-testing ubuntu


【解决方案1】:

--datadir 仅用于数据或--basedir

【讨论】:

  • 我最终想要运行的完整命令是:mysqld --no-defaults --datadir $SOME_TEMP_DIR --socket mysql.socket --skip-grant
  • 您可能还想添加 --skip-networking 或确保将 --port 设置为 3306 以外的其他值。只是为了确保。将这些放在选项文件中也很好:mysqld --defaults-file=my_testsuite.cnf(它将忽略其他选项文件)
【解决方案2】:

您可以尝试 MySQL 中的 Blackhole 和 Memory 表类型。

【讨论】:

  • 恕我直言,如果您正在测试您的应用程序,最好使用稍后将使用的存储引擎。
  • @geertjanvdk:当然,我刚刚发布了我的问题,因为我不知道任何其他选择......我们一直在学习! =)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
  • 1970-01-01
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多