【发布时间】:2014-05-22 18:10:40
【问题描述】:
我在一台运行 Arch Linux 的机器上安装 ownCloud,它已经启动并运行了 MariaDB、PHP 和 Apache。 当我尝试启动ownCloud的安装程序时,我收到了这个错误:
Error while trying to create admin user: An exception occurred while executing 'CREATE TABLE `oc_appconfig` (`appid` VARCHAR(32) DEFAULT '' NOT NULL, `configkey` VARCHAR(64) DEFAULT '' NOT NULL, `configvalue` LONGTEXT DEFAULT NULL, INDEX appconfig_config_key_index (`configkey`), PRIMARY KEY(`appid`, `configkey`)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB': SQLSTATE[42000]: Syntax error or access violation: 1142 CREATE command denied to user 'owncloud'@'localhost' for table 'oc_appconfig'
好像是权限问题。但我不知道为什么会这样:
sql> USE owncloud;
sql> CREATE USER 'owncloud'@'localhost' IDENTIFIED BY 'password';
sql> GRANT ALL PRIVILEGES ON owncloud TO 'owncloud'@'localhost' WITH GRANT OPTION;
如果我检查权限,它们似乎就在那里:
sql> SHOW GRANTS FOR 'owncloud'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for owncloud@localhost |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'owncloud'@'localhost' IDENTIFIED BY PASSWORD '*****************************************' |
| GRANT ALL PRIVILEGES ON `owncloud`.`owncloud` TO 'owncloud'@'localhost' WITH GRANT OPTION |
+-----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
我尝试删除用户并重新创建它,但我得到了同样的错误。有什么想法吗?
【问题讨论】:
-
如果可以尝试授予完全权限,看看它是否有效:GRANT ALL PRIVILEGES ON star-dot-start TO 'owncloud'@'localhost'..你是对的,它必须是权限!
-
看起来它部分工作了。现在我得到了这个:“尝试创建管理员用户时出错:SQLSTATE [HY000] [1044] 用户'oc_user'@'localhost'拒绝访问数据库'owncloud'”
-
假设您有权实际创建用户,您可以尝试使用“127.0.0.1”代替(或以及)localhost - 我认为这有点远。而是确认您用于创建新用户的用户具有执行此操作所需的权限。
-
SHOW GRANTS 显示用户确实没有有权在
owncloud数据库中创建表。要授予数据库中所有对象的权限,请使用“on database dot star”ON owncloud.*。