0

我正在尝试在 Silverstripe 上设置自动化测试!在 CPanel 中。当我在 url 中运行任何测试时(对于我来说,它是 DOMAIN/dev/tests/AggregateTest),它说

致命错误:无法运行查询:tmpdb2605857在第 525 行的 /home/todaytes/public_html/sapphire/core/model/MySQLDatabase.php 中,用户 'todaytes_root'@'localhost' 对数据库 'tmpdb2605857' 的 CREATE DATABASE 访问被拒绝

Silverstripe 将在每次测试执行时创建一个随机命名的数据库,并在测试完成后将其销毁。

从 cPanel 的“数据库”菜单中,我只能手动添加数据库和用户并为其添加一些前缀名称(在我的情况下,我所有的数据库和用户都以 todaytes_ 开头)。如何配置 cPanel/WHM 以向用户授予权限,以便 Silverstripe 自动测试可以正常工作?

4

2 回答 2

0

cPanel 用户无权使用随机名称创建数据库。从 cPanel 创建的数据库总是有前缀“username_”

如果您对服务器具有 root 访问权限,那么您可以使用 MySQL root 用户名和密码来执行此操作。您可以从文件 /root/.my.cnf 中获取 MySQL root 用户名和密码

于 2012-04-02T14:59:59.050 回答
0

几点:

  • 您可以SS_DATABASE_PREFIX_ss_environment.php文件中定义,将其设置为“username_”。这将影响使用的临时数据库的名称。
  • 如果您不想使用随机数据库名称,可以修改SapphireTest::create_temp_db().
于 2012-06-07T05:03:48.930 回答