首页 文章

MySQL的Phabricator配置问题

提问于
浏览
2

我能够获得phabricator的URL . 当我从phabricator目录运行以下脚本时,我收到下面复制的错误 . 我还复制了custom / myconfig.conf.php文件中的mysql配置信息(凭证工作 - 我可以使用mysql -u root -p通过终端登录) . 一旦我可以测试设置,我会将凭据更改为非root .

myconfig.conf.php

// DatabaseConfigurationProvider.
  'mysql.configuration-provider' => 'DefaultDatabaseConfigurationProvider',

  // The username to use when connecting to MySQL.
  'mysql.user' => 'root',

  // The password to use when connecting to MySQL.
  'mysql.pass' => 'xxxxxxxxx',

  // The MySQL server to connect to.
  'mysql.host' => '127.0.0.1', ///'localhost',

  // If you want to connect to a different port than the default (which is 3306)
  'mysql.port' => null,

Error after running ./bin/storage upgrade

Unable To Connect: Attempt to connect to root@localhost failed with error #1045: Access denied for user 'root'@'localhost' (using password: NO).

MySQL正在监听127.0.0.1:3306 . 我也尝试了以下内容(也传递了root ID)但它不起作用:./ bin / storage upgrade --user --password

Update: 当我使用一组新凭据运行./bin/storage upgrade命令时,出现以下错误:

[2014-05-07 16:15:16] EXCEPTION: (RuntimeException) Undefined property:

     DefaultDatabaseConfigurationProvider::$getPassword at

     [/usr/local/phabricator/libphutil/src/error/PhutilErrorHandler.php:216]

          #0 PhutilErrorHandler::handleError(8, Undefined property: 

    DefaultDatabaseConfigurationProvider::$getPassword,


     /usr/local/phabricator/phabricator/scripts/sql/manage_storage.php, 75, 

Array of size 16 starting with: { _GET => Array  }) called at 

    [/usr/local/phabricator/phabricator/scripts/sql/manage_storage.php:75]

如果我在存储升级命令中传入用户名/密码但未从conf文件中正确获取,则存储现在可以使用新的数据库凭据 . 我将检查conf并相应地更新它 .

4 回答

  • 0

    在某些情况下,这还不够:./ bin / storage upgrade想要创建新数据库,但phabricatos用户没有创建数据库的权限 . 因此,我建议使用此mysql代码授予所有权限phabricator用户所有phabricator_ *用于数据库(现有和将来创建) GRANT ALL PRIVILEGES ON phabricator_% .* TO 'phabricator'@'localhost';

  • 3

    迟到的答案,希望它能帮助新来者

    phabricator提供了配置mysql连接的用户名和密码的机制

    phabricator/ $ ./bin/config set mysql.host __host__
      phabricator/ $ ./bin/config set mysql.user __username__
      phabricator/ $ ./bin/config set mysql.pass __password__
    

    另外,您也可以更新配置文件

    phabricator/ $ ./conf/local/local.json

    {
      "mysql.user": "phabricator_user_in_mysql"
    }
    

    确保此用户在mysql中具有适当的访问权限

    然后运行 ./bin/storage upgrade

  • 4

    嗨,我花了2天后很轻松地解决了这个问题:

    ./bin/config set mysql.host 'localhost'
    
    ./bin/config set mysql.user 'root'
    
    ./bin/config set mysql.pass 'pass'
    

    不要忘记报价!!!

  • 0

    如果我在存储升级命令中传入用户名/密码但未从conf文件中正确获取,则存储现在可以使用新的数据库凭据 . 我将检查conf并相应地更新它 .

    ./bin/storage upgrade --user "actual username" --password "actual password"
    

相关问题