如何允许用户在Cpanel(Silverstripe)中创建随机命名数据库的权限

时间:2012-03-31 08:12:12

标签: database automated-tests cpanel silverstripe whm

我正在尝试设置automated testing on Silverstripe!在CPanel。当我在url中运行任何测试时(对于我的情况,它是DOMAIN / dev / tests / AggregateTest),它说

  

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

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

从cPanel的“数据库”菜单中,我只允许手动添加数据库和用户的一些前缀名称(在我的例子中,我的所有数据库和用户都以todaytes_开头)。如何配置cPanel / WHM以向用户授予权限,以便Silverstripe Automated Test可以正常工作?

2 个答案:

答案 0 :(得分:0)

cPanel用户无权使用随机名称创建数据库。从cPanel创建的数据库始终具有前缀“username _”

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

获取MySQL root用户名和密码

答案 1 :(得分:0)

几点:

  • 您可以在SS_DATABASE_PREFIX文件中定义_ss_environment.php,将其设置为“username_”。这将影响使用的临时数据库的名称。
  • 如果您不想使用随机数据库名称,则可以修改SapphireTest::create_temp_db()