Не удалось подключиться к mysql при установке фабрикатора

Я устанавливаю phabricator в Linux и следую руководству по установке с https://secure.phabricator.com/book/phabricator/article/installation_guide/, а также с http://www.tecmint.com/install-phabricator-in-linux/

Когда я пытаюсь получить доступ к фабрикатору с веб-адреса, я получаю ответ, например

    Unable to connect to MySQL!

     Attempt to connect to [email protected] failed with error #2003: Can't connect to MySQL server on '127.0.0.1' (13).

     Make sure Phabricator and MySQL are correctly configured.

To update these 4 value(s), run these command(s) from the command line:
phabricator/ $ ./bin/config set mysql.host value
phabricator/ $ ./bin/config set mysql.port value
phabricator/ $ ./bin/config set mysql.user value
phabricator/ $ ./bin/config set mysql.pass value

Когда я настроил свой mysql, и если я запускаю phabricator/ $ ./bin/storage upgrade, я получаю сообщение об ошибке

   [2015-01-20 18:12:04] EXCEPTION: (AphrontAccessDeniedQueryException) #1044: Access denied for user ''@'localhost' to database 'phabricator_audit' at [<phutil>/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php:301]
  #0 AphrontBaseMySQLDatabaseConnection::throwQueryCodeException(integer, string) called at [<phutil>/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php:275]
  #1 AphrontBaseMySQLDatabaseConnection::throwQueryException(mysqli) called at [<phutil>/src/aphront/storage/connection/mysql/AphrontBaseMySQLDatabaseConnection.php:181]
  #2 AphrontBaseMySQLDatabaseConnection::executeRawQuery(string) called at [<phutil>/src/xsprintf/queryfx.php:6]
  #3 queryfx(AphrontMySQLiDatabaseConnection, string, string) called at [<phabricator>/src/infrastructure/storage/management/PhabricatorStorageManagementAPI.php:219]
  #4 PhabricatorStorageManagementAPI::applyPatchSQL(string) called at [<phabricator>/src/infrastructure/storage/management/workflow/PhabricatorStorageManagementUpgradeWorkflow.php:109]
  #5 PhabricatorStorageManagementUpgradeWorkflow::execute(PhutilArgumentParser) called at [<phutil>/src/parser/argument/PhutilArgumentParser.php:396]
  #6 PhutilArgumentParser::parseWorkflowsFull(array) called at [<phutil>/src/parser/argument/PhutilArgumentParser.php:292]
  #7 PhutilArgumentParser::parseWorkflows(array) called at [<phabricator>/scripts/sql/manage_storage.php:171]

Если я запускаю ./bin/storage upgrade --user root --password root, я получаю сообщение об ошибке

Raw MySQL Error: Attempt to connect to root@localhost failed with error
#1045: Access denied for user 'root'@'localhost' (using password: YES).

Это мои настройки апача,

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName xxx.yyy.com
        DocumentRoot /var/www/html/myprojectapp/phabricator/webroot
        RewriteEngine on
        RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
        RewriteRule ^/favicon.ico   -                       [L,QSA]
        RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
<Directory "/var/www/html/myprojectapp/phabricator/webroot">
        Order allow,deny
        Allow from all
</Directory>
</VirtualHost>

Я следовал всем инструкциям, приведенным в руководстве по установке. Может ли кто-нибудь помочь мне указать на мою ошибку?


person Jugi    schedule 20.01.2015    source источник
comment
Вы пытались установить mysql.host, mysql.pass, mysql.port и mysql.user с помощью bin/config set?   -  person prodigitalson    schedule 20.01.2015
comment
Спасибо за быстрый ответ. Да, я сделал :( когда я запускаю обновление хранилища, я получаю сообщение об ошибке   -  person Jugi    schedule 20.01.2015
comment
И вы пытались использовать 127.0.0.1 для хоста, а не localhost Также можете ли вы подключиться к клиенту mysql из командной строки, используя те же учетные данные (т.е. mysql -u username -p -h hostname)?   -  person prodigitalson    schedule 20.01.2015
comment
я попробовал, как вы предложили, и получил следующую ошибку: [root@codereview phabricator]# ./bin/storage upgrade Учетные данные MySQL не настроены Невозможно подключиться к MySQL с использованием настроенных учетных данных. Перед обновлением хранилища необходимо настроить стандартные учетные данные. Запустите эти команды, чтобы настроить учетные данные: Необработанная ошибка MySQL: попытка подключения к [email protected] не удалась с ошибкой № 1045: доступ запрещен для пользователя «root» @ «localhost» (используя пароль: YES). [root@codereview фабрикатор]#   -  person Jugi    schedule 20.01.2015
comment
даже после установки хоста, порта, пользователя и пароля я получаю сообщение об ошибке, например, учетные данные MySQL не настроены.   -  person Jugi    schedule 20.01.2015
comment
Я решил эту проблему, обновив версию mysql до mysql5.5 с mysql5.1, а также установил фабрикатор в другой ящик Linux. Я не уверен, решило ли обновление mysql5.5 эту проблему.   -  person Jugi    schedule 21.01.2015
comment
Установка для mysql.host значения 127.0.0.1, а не localhost, как предложил @prodigitalson, устранила проблему в моем случае. Спасибо!   -  person Roy    schedule 29.01.2015
comment
Я запускал команды ./bin с помощью sudo, и у меня это сработало.   -  person Sanath Ballal    schedule 15.06.2015
comment
Предложение @prodigitalson сработало в моем случае. Спасибо. Я развернул фабрикатор на экземпляре Lightsail с Ubuntu 18, для всех, у кого есть этот сценарий :)   -  person PalFS    schedule 17.05.2021


Ответы (5)


Похоже, что Phabricator создает много phabricator_ баз данных, так что это должно сработать:

GRANT ALL PRIVILEGES ON `phabricator\_%`.* TO phabricatoruser@'localhost';

Вы также можете попробовать ограничить привилегии.

person Vladimir Fridman    schedule 24.11.2017
comment
Нет необходимости предоставлять пользователю Phabricator все привилегии для всех баз данных. Phabricator создает таблицы в пространстве имен phabricator_. Следовательно, более безопасно ограничить привилегии учетной записи Phabricator этим пространством имен. Вместо этого используйте следующие команды: grant all privileges on `phabricator\_%`.* to phabricatoruser@'localhost'; - person code_dredd; 29.05.2018

у меня была такая же проблема, исправить было так просто:

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

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

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

не забывайте "кавычки" я потратил 2 дня на решение этой проблемы!!

person cyril    schedule 04.08.2016
comment
Не рекомендуется давать root-права веб-приложению. - person Valerio Bozz; 08.11.2019

это была проблема селинукса. отключение его решает. 1 отредактируйте этот файл vim /etc/selinux/config 2 измените SELINUX=enforcing ---> SELINUX=disabled 3 перезагрузите

person pany1708    schedule 22.06.2016

Скорее всего, у пользователя вашей базы данных нет прав на создание.

войдите с помощью mysql: mysql -u user -p и попробуйте: create database temp;

Если база данных не создана, вам необходимо предоставить права на создание вашему пользователю.

Проверьте это для синтаксиса mysql Grant.

person aminalid    schedule 17.02.2015

Хорошо, у меня такая же проблема, я исправил ее через несколько часов :(

Кажется, мой пароль имеет знак доллара $ в конце.

Я изменил пароль mysql на простые буквы и цифры, без специальных символов.

Странно, но это решило проблему для меня!

Я не проводил никаких дополнительных исследований, но, похоже, проблема со специальными символами в паролях mysql.

person catalin87    schedule 11.12.2019