Как разрешить создание триггеров базы данных

При попытке установить CiviCrm в Drupal 7 я получаю "Не удалось создать триггер базы данных".

Использование стандартного ddev config.yml для drupal7.

Несколько решений предлагаются по адресу https://civicrm.stackexchange.com/questions/2770/database-trigger-error-message но я изо всех сил пытаюсь реализовать их в ddev. RE Grant - при попытке выполнить ddev exec mysql GRANT..... мне не удалось выполнить команду. Когда я пытаюсь предоставить привилегии ssh в оболочку mysql, я получаю отказ в доступе для пользователя. RE log_bin_trust_function_creators = 1. Куда я это вставлю?

1 ответ

Обновление 2019-01-25: я пошел проверить это после того, как вы создали проблему, и то, что я предложил, было неадекватным. Как объяснено там, вам нужно сделать немного пользовательских настроек. Создайте.ddev/mysql/trigger.cnf со следующим содержимым:

[mysqld]
log_bin_trust_function_creators=on

И в следующем выпуске ddev (середина февраля) это будет по умолчанию ( PR). Поэтому, пожалуйста, сообщите о своих результатах там. Мне удалось установить CiviCRM с этим конфигом mysql.

Исходный ответ: Верно, но не подходит для триггеров: пользователь root корневого контейнера имеет полные привилегии, поэтому вы можете использовать mysql -uroot -proot..., чтобы сделать то, что вам нужно. Вы можете сделать это внутри контейнера БД ddev ssh -s db или внутри веб-контейнера ddev ssh или с хоста, используя информацию в ddev describe (но используя root / root). (Конечно, вы также можете использовать пользователя root для предоставления дополнительных прав пользователю db.)

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

Другие вопросы по тегам