Ошибка подключения к базе данных при установке moodle

Ошибка подключения к базе данных при установке moodle

от Александр Межов -
Количество ответов: 13

Час добрый! Сразу хочу отметить, что обсуждения в данную тему читал на этом форуме и других местах, искал решение и так и не нашел, поэтому вынужден обратиться за помощью. 

Возникла необходимость поднять moodle на базе debian 10.

Сейчас, на этапе инсталляции возникает эта пресловутая ошибка:

"Error: Database connection failed

It is possible that the database is overloaded or otherwise not running properly.

The site administrator should also check that the database details have been correctly specified in config.php"

Что проделано:

1) содержимое config.php:

<?php  /// Moodle Configuration File 

unset($CFG);

$CFG->dbtype    = 'mariadb';
$CFG->dbhost    = '127.0.0.1:8081';
$CFG->dbname    = 'moodle';
$CFG->dbuser    = 'alex';
$CFG->dbpass    = 'qwerty123';
$CFG->dbpersist =  false;
$CFG->prefix    = 'mdl_';

$CFG->wwwroot   = 'http://127.0.0.1:8081';

$CFG->dirroot   = '/var/www/html/moodle';
$CFG->dataroot  = '/var/moodledata';
$CFG->admin     = 'admin';

$CFG->directorypermissions = 0777; 
require_once("$CFG->dirroot/lib/setup.php");
?>
2) Пользователь alex имеет неограниченные права, в phpmyadmin проверено

3) содержимое файла mysql.cnf:


#
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
default_storage_engine = innodb
innodb_file_per_table = 1
innodb_file_format = Barracuda


В чем может быть проблема? 

В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Vadim Tabunshchik -
Изображение пользователя Developers

$CFG->dbhost = '127.0.0.1:8081' - Это что ещё за фантазии?

Тут должен быть адрес, по которому нужно обращаться к серверу БД. Во всех случаях это localhost и, обычно, без указания порта, если вы не хотите изменить порт по умолчанию. Тогда порт нужно прописывать отдельно, например:

$CFG->dboptions = array(
    'dbport'    => '3308', //MariaDB и MySQL по дефолту работают на порту 3306 :)
);
В ответ на Vadim Tabunshchik

Re: Ошибка подключения к базе данных при установке moodle

от Александр Межов -
Спасибо за ответ, понимаю, но ни localhost ни прямо 10.6.0.5 не решает проблему(. Это я уже эксперименты проводил
В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Vadim Tabunshchik -
Изображение пользователя Developers
Что значит «не решает проблему»? Сервер БД запущен? service mysql status что показывает?
Может вам нужно базу данных вручную создать?
В ответ на Vadim Tabunshchik

Re: Ошибка подключения к базе данных при установке moodle

от Александр Межов -
Да я и вручную создавал и через phpmyadmin. И права пользователю давал.
по запросу
systemctl status mariadb
выдает:
ariadb.service - MariaDB 10.3.18 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:
Active: active (running) since Sun 2019-12-15 15:29:12 +07; 7h ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 21545 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 32 (limit: 4915)
Memory: 79.9M
CGroup: /system.slice/mariadb.service
└─21545 /usr/sbin/mysqld

дек 15 15:45:49 Moddle mysqld[21545]: 2019-12-15 15:45:49 76 [Warning] Access de
дек 15 15:45:58 Moddle mysqld[21545]: 2019-12-15 15:45:58 79 [Warning] Access de
дек 15 15:46:10 Moddle mysqld[21545]: 2019-12-15 15:46:10 82 [Warning] Access de
дек 15 15:46:15 Moddle mysqld[21545]: 2019-12-15 15:46:15 85 [Warning] Access de
дек 15 15:46:29 Moddle mysqld[21545]: 2019-12-15 15:46:29 88 [Warning] Access de
дек 15 16:10:25 Moddle mysqld[21545]: 2019-12-15 16:10:25 91 [Warning] Access de
дек 15 16:13:46 Moddle mysqld[21545]: 2019-12-15 16:13:46 94 [Warning] Access de
дек 15 19:00:00 Moddle mysqld[21545]: 2019-12-15 19:00:00 97 [Warning] IP addres
дек 15 19:00:00 Moddle mysqld[21545]: 2019-12-15 19:00:00 98 [Warning] IP addres
дек 15 19:10:32 Moddle mysqld[21545]: 2019-12-15 19:10:32 102 [Warning] Access
В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Александр Межов -
Кстати я прописал и $CFG->dbhost = '10.6.0.5' (при указании localhost - выдает Ошибка HTTP 404.0 - Not Found)
В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Vadim Tabunshchik -
Изображение пользователя Developers

Судя по status mariadb сервер запущен и работает.

Теперь разберитесь с «Moddle mysqld[21545]: 2019-12-15 16:13:46 94 [Warning] Access de…» Что там дальше написано? Кому запрещен доступ?

Пользователю alex, указанному в конфиге, разрешен доступ к серверу БД? Права на создание/чтение/запись в БД moodle есть?

В ответ на Vadim Tabunshchik

Re: Ошибка подключения к базе данных при установке moodle

от Александр Межов -
Написано:
дек 15 19:00:00 Moddle mysqld[21545]: 2019-12-15 19:00:00 98 [Warning] IP address '10.6.0.7' could not be resolved: Name or service not known
дек 15 19:10:32 Moddle mysqld[21545]: 2019-12-15 19:10:32 102 [Warning] Access denied for user 'root'@'localhost' (using password: YES)
дек 15 23:29:52 Moddle mysqld[21545]: 2019-12-15 23:29:52 165 [Warning] IP address '10.6.0.5' could not be resolved: Name or service not known
дек 15 23:29:52 Moddle mysqld[21545]: 2019-12-15 23:29:52 165 [Warning] Access denied for user 'alex'@'%' to database 'moodle'
дек 15 23:29:53 Moddle mysqld[21545]: 2019-12-15 23:29:53 166 [Warning] Access denied for user 'alex'@'%' to database 'moodle'
дек 15 23:30:13 Moddle mysqld[21545]: 2019-12-15 23:30:13 167 [Warning] Access denied for user 'alex'@'%' to database 'moodle'
дек 15 23:31:08 Moddle mysqld[21545]: 2019-12-15 23:31:08 168 [Warning] Access denied for user 'alex'@'%' to database 'lic6'
дек 15 23:34:42 Moddle mysqld[21545]: 2019-12-15 23:34:42 169 [Warning] Access denied for user 'alex'@'%' to database 'lic6'
дек 15 23:40:04 Moddle mysqld[21545]: 2019-12-15 23:40:04 181 [Warning] Access denied for user 'alex'@'%' to database 'moodle'
дек 16 08:47:11 Moddle mysqld[21545]: 2019-12-16 8:47:11 228 [Warning] Access denied for user 'alex'@'%' to database 'moodle'
По поводу доступа к базе:
Приложение Снимок экрана 2019-12-16 в 8.49.34.png
В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Александр Межов -
В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Vadim Tabunshchik -
Изображение пользователя Developers

IP address '10.6.0.7' could not be resolved -  это вам понятно? MySQL настроен на запросы только с localhost или через сокет

Access denied for user 'root'@'localhost' - руту вообще запрещено подключение к серверу по соображениям безопасности (только unix_socket https://www.8host.com/blog/ustanovka-mariadb-v-debian-9/).

Access denied for user 'alex'@'%' to database 'moodle' - 'alex'@'%' и 'alex'@'localhost' - это разные учетные записи, поэтому первого и не пущает.

Создайте пользователя, например, 'moodle'@'localhost' с правами только на БД moodle, пропишите в config.php $CFG->dbhost = 'localhost' и будет вам подключение.

В ответ на Vadim Tabunshchik

Re: Ошибка подключения к базе данных при установке moodle

от Александр Межов -
Проделал, как Вы сказали, не помогло, а при замене на $CFG->dbhost = 'localhost' - вообще связи нет
В ответ на Александр Межов

Re: Ошибка подключения к базе данных при установке moodle

от Evgeniy Schuetz -
Александр, я бы порекомендовал вам сделать "по учебнику" установку СУБД, особенно этап Postinstallation Setup and Testing, как описано, например здесь: https://dev.mysql.com/doc/refman/5.7/en/postinstallation.html
Сделать точно как описано без всяких phpmyadmin командами из консоли. Когда точно субд заработает от нужного пользователя со всеми правами, тогда уже заняться увязкой с moodle от имени этого пользователя.