1 (изменено: Маверик, 2018-08-30 11:19:58)

Тема: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Добрый день! При импорте базы данных на виртуальный сервер в phpMyAdmin появилась ошибка.

Ошибка

SQL запрос:


/*!50003 CREATE*/ /*!50017 DEFINER=`root`@`localhost`*/ /*!50003 TRIGGER trg_catalog_category_entity_after_insert AFTER INSERT ON catalog_category_entity FOR EACH ROW
BEGIN
INSERT IGNORE INTO `catalog_category_product_cl` (`entity_id`) VALUES (NEW.`entity_id`);
END */

Ответ MySQL:

#1227 - В доступе отказано. Вам нужны привилегии SUPER для этой операции

Подскажите пожл. как решить эту проблему?

2

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Попробуйте удалить в дампе строку DEFINER=`root`@`localhost`.
Как вариант, уберите триггер.

3 (изменено: Маверик, 2018-08-30 13:05:57)

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

В базе данных сделал SQL-запрос: SHOW GRANTS;

Ответ такой:

Grants for admin_dsxvx@localhost
GRANT USAGE ON *.* TO 'admin_dsxvx'@'localhost' ID...
GRANT ALL PRIVILEGES ON `admin_rshb`.* TO 'admin_d...

У нашего виртуального сервера есть системный администратор нашей компании. Теоретически он может назначить мне привилегии SUPER?

4 (изменено: Маверик, 2018-08-30 13:22:18)

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Посмотрел привилегии в phpMyAdmin, вот такой ответ: Нет привилегий.

http://joxi.ru/823WWEeSJ5ngN2.jpg

http://joxi.ru/Q2KggGdC4WbWj2.jpg

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Какие команды нужно прописать системному администратору, чтобы назначить мне привилегии SUPER?

6

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Маверик сказал:

Какие команды нужно прописать системному администратору, чтобы назначить мне привилегии SUPER?

Зайдя в phpMyAdmin через root можно назначить привилегии всем пользователям просто расставив галочки привилегий на странице пользователей.

7 (изменено: Маверик, 2018-08-30 16:20:56)

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Hanut сказал:
Маверик сказал:

Какие команды нужно прописать системному администратору, чтобы назначить мне привилегии SUPER?

Зайдя в phpMyAdmin через root можно назначить привилегии всем пользователям просто расставив галочки привилегий на странице пользователей.

Но у меня получается таких галочек с привилегиями нет, потому, что я обычный пользователь, да?

8

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Маверик сказал:

Но у меня получается таких галочек с привилегиями  нет, потому, что я обычный пользователь, да?

Верно.

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Удалил текст:

/*!50017 DEFINER=`root`@`localhost`*/

База данных Mysql успешно загрузилась в phpMyAdmin.

10 (изменено: Маверик, 2018-08-31 13:17:00)

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Я так понял, что строчка /*!50017 DEFINER=`root`@`localhost`*/ закомментирована и не используется при создании триггеров. Зачем тогда разработчик добавил её в базу данных?

Эта база данных разработчика темы для Magento 2.

Триггеры создались.

11

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Может быть вместо имени root, нужно было указать имя созданной базы данных sparta45_bpc?

12

Re: Ошибка #1227 - В доступе отказано. Нужны привилегии SUPER

Комментарий указывает, что начиная с указанной версии MySQL надо использовать данный запрос определяющий пользователя под которым создается триггер.

При удалении данной строки триггер пытается создать под учетной записью текущего пользователя.