Я случайно удалил некоторые привилегии моего корневого пользователя MySQL, включая возможность изменять таблицы. Есть ли способ восстановить этого пользователя в исходное состояние (со всеми привилегиями)?
UPDATE mysql.user SET Grant_priv = 'Y', Super_priv = 'Y' WHERE User = 'root';
# MySQL returned an empty result set (i.e. zero rows).
FLUSH PRIVILEGES ;
# MySQL returned an empty result set (i.e. zero rows).
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
GRANT ALL ON *.* TO 'root'@'localhost'
mysql
privileges
mysql-error-1045
Стивен
источник
источник
Ответы:
Если
GRANT ALL
не работает, попробуйте:mysqld
и перезапустите его с--skip-grant-tables
опцией.mysqld
серверу с помощью всего:mysql
(т.е. без-p
опции, и имя пользователя может не требоваться).Выполните следующие команды в клиенте mysql:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
После этого вы сможете запустить
GRANT ALL ON *.* TO 'root'@'localhost';
и заставить его работать.источник
skip-grant-tables
в[mysqld]
раздел файла конфигурации mysql, чтобы получить доступ к mysql из командной строки без пароля.Если вы удалили своего
root
пользователя по ошибке, вы можете сделать одно:mysqld_safe --skip-grant-tables &
mysql -u root -p
и нажмите ввод.use mysql;
Затем выполните этот запрос:
затем перезапустите mysqld
РЕДАКТИРОВАТЬ: 6 октября 2018 г.
Если кому-то еще нужен этот ответ, я попробовал его сегодня, используя innodb_version 5.6.36-82.0 и 10.1.24-MariaDB, и он работает, если вы УДАЛИТЕ ОТВЕТЫ (тоже без одинарных кавычек, просто удалите их):
источник
mysqld.exe
вbin
папке, нетmysqld_safe.exe
. Что вы имеете в виду под "mysqld_safe"?mysqld_safe
, просто запустите обычный двоичный файл mysqld:mysqld.exe --skip-grant-tables
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
Я также удаляю привилегии root и базы данных, которые не отображаются в консоли mysql, когда я был пользователем root, поэтому изменил пользователя
mysql>mysql -u 'userName' -p;
и пароль;после этой команды все показывает базу данных в корне.
Спасибо
источник
Я отказал root в правах на вставку и перезагрузку. Таким образом, после обновления разрешений FLUSH PRIVILEGES не работал (из-за отсутствия прав на перезагрузку). Поэтому я использовал debian-sys-maint user в Ubuntu 16.04 для восстановления привилегий user.root. Вы можете найти пароль для user.debian-sys-maint из этого файла
источник
Просто войдите в систему от root, используя соответствующий пароль, если таковой имеется, и просто запустите указанную выше команду для любого пользователя.
Например:
источник
Просто вставьте или обновите
mysql.user
значениеY
в каждом столбце привилегий.источник
Если вы используете WAMP на локальном компьютере (mysql версии 5.7.14) Шаг 1: откройте файл my.ini Шаг 2: снимите комментарий с этой строки 'skip-grant-tables', удалив точку с запятой. Шаг 3: перезапустите mysql. шаг сервера 4: запустить консоль mySQL, шаг 5:
Шаг 6: Проблема решена !!!!
источник