Доступ запрещен для пользователя ‘root’ @’localhost’ при доступе к DKAN

#mysql #drupal #dkan

#mysql #drupal #dkan

Вопрос:

Я установил DKAN и ненадолго поработал. Затем я закрыл все и попытался открыть его снова, я получил следующее сообщение об ошибке:

 The website encountered an unexpected error. Please try again later.
DrupalCoreDatabaseDatabaseAccessDeniedException: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) in DrupalCoreDatabaseDrivermysqlConnection::open() (line 156 of /var/www/html/core/lib/Drupal/Core/Database/Driver/mysql/Connection.php).
DrupalCoreDatabaseDrivermysqlConnection::open(Array) (Line: 376)
DrupalCoreDatabaseDatabase::openConnection('default', 'default') (Line: 166)
DrupalCoreDatabaseDatabase::getConnection('default')
call_user_func_array('DrupalCoreDatabaseDatabase::getConnection', Array) (Line: 79)
DrupalComponentDependencyInjectionPhpArrayContainer->createService(Array, 'database') (Line: 171)
DrupalComponentDependencyInjectionContainer->get('database', 1) (Line: 260)
DrupalComponentDependencyInjectionPhpArrayContainer->resolveServicesAndParameters(Array) (Line: 62)
DrupalComponentDependencyInjectionPhpArrayContainer->createService(Array, 'cache.container') (Line: 171)
DrupalComponentDependencyInjectionContainer->get('cache.container') (Line: 513)
DrupalCoreDrupalKernel->getCachedContainerDefinition() (Line: 868)
DrupalCoreDrupalKernel->initializeContainer() (Line: 466)
DrupalCoreDrupalKernel->boot() (Line: 656)
DrupalCoreDrupalKernel->handle(Object) (Line: 19)
 

Я полагаю, что это может быть тот факт, что я ввел в качестве username значения admin , но когда я создавал его на своем ноутбуке (я использую Ubuntu 18), база данных была создана из root . Однако я до сих пор не знаю, действительно ли это проблема или как я могу это исправить

Ответ №1:

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

Запустив mysql -u root -p в командной строке и введя пароль. Затем:

  CREATE USER drupal@localhost IDENTIFIED BY 'secretpassword';
 GRANT ALL ON drupaldatabase.* TO drupal@localhost;
 

Во-вторых, настройте приложение Drupal в его файле конфигурации для использования этого нового пользователя.