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

问题描述:

我想设置automated testing on Silverstripe!在CPanel中。当我跑到任何URL测试(我的情况下,它是DOMAIN的/ dev /测试/ AggregateTest),它说如何允许用户在Cpanel中创建随机数据库的权限(Silverstripe)

Fatal error: Couldn't run query: CREATE DATABASE tmpdb2605857 Access denied for user 'todaytes_root'@'localhost' to database 'tmpdb2605857' in /home/todaytes/public_html/sapphire/core/model/MySQLDatabase.php on line 525

Silverstripe将创建一个随机命名的数据库,每一个测试执行的时间,之后摧毁它测试完成。

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

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

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

+0

嗨,我有根服务器的访问权限。我如何继续并使用MySQL根用户名和密码来执行此操作? – Joe 2012-04-10 22:50:35

的几点:

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