Проблема с конфигурацией Phabricator для MySQL

Я могу получить URL-адрес для phabricator. Когда я запускаю следующий скрипт из каталога phabricator, я получаю ошибку, скопированную ниже. Я также скопировал информацию о конфигурации mysql из файла custom/myconfig.conf.php (учетные данные работают — я могу войти в систему через терминал, используя 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,

Ошибка после запуска обновления ./bin/storage

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. Я также пробовал следующее (также передавая корневой идентификатор), но это не сработало: ./bin/storage upgrade --user --password

Обновление. Когда я запускаю команду обновления ./bin/storage с новым набором учетных данных, я получаю следующую ошибку:

        [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. Я проверю конфиг и обновлю его соответственно.


person ali haider    schedule 30.04.2014    source источник


Ответы (4)


привет, я очень легко решил проблему, проведя 2 дня:

./bin/config set mysql.host 'localhost'

./bin/config set mysql.user 'root'

./bin/config set mysql.pass 'pass'

не забывайте цитаты!!!

person cyril    schedule 04.08.2016

Хранилище теперь работает с новыми учетными данными БД, если я передам имя пользователя/пароль в команде обновления хранилища, но они не будут правильно получены из файла conf. Я проверю конфиг и обновлю его соответственно.

./bin/storage upgrade --user "actual username" --password "actual password"
person ali haider    schedule 07.05.2014

В некоторых ситуациях этого недостаточно: ./bin/storage upgrade хочет создать новую базу данных, но у пользователя phabricatos нет прав на создание баз данных. Поэтому я предлагаю предоставить все привилегии пользователю phabricator всем phabricator_* для баз данных (существующих и созданных в будущем), используя этот код mysql GRANT ALL PRIVILEGES ONphabricator_%.* TO 'phabricator'@'localhost';

person abcklocki    schedule 12.03.2018

поздний ответ, надеюсь, он поможет новичкам

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

person Ja8zyjits    schedule 19.06.2016